Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- template <class T1>
- class A
- {
- static T1 x;
- static vector<T1> v;
- public:
- static void testOne();
- };
- template <class T1>
- T1 A<T1>::x = 56;
- template <class T1>
- void
- A<T1>::testOne()
- {
- A::x = 45;
- A::v.push_back(34);
- cout << A::x << endl;
- cout << A::v.size() << endl;
- }
- int
- main(int argc, char* argv[])
- {
- A<int>::testOne();
- return 0;
- }
- static.cpp:25:6: warning: instantiation of variable 'A<int>::v' required here,
- but no definition is available [-Wundefined-var-template]
- A::v.push_back(34);
- ^
- static.cpp:34:11: note: in instantiation of member function 'A<int>::testOne'
- requested here
- A<int>::testOne();
- ^
- static.cpp:10:21: note: forward declaration of template entity is here
- static vector<T1> v;
- ^
- 1 warning generated.
- Undefined symbols for architecture x86_64:
- "A<int>::v", referenced from:
- A<int>::testOne() in static-9790dc.o
- ld: symbol(s) not found for architecture x86_64
- clang: error: linker command failed with exit code 1 (use -v to see invocation)
- static.cpp:18:8: error: use of undeclared identifier 'T1'
- vector<T1>A::v;
- ^
- static.cpp:18:11: error: 'A' is not a class, namespace, or enumeration
- vector<T1>A::v;
- ^
- static.cpp:7:7: note: 'A' declared here
- class A
- ^
- 2 errors generated.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement