URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
[/] [or1k/] [trunk/] [gdb-5.3/] [gdb/] [testsuite/] [gdb.c++/] [m-static.cc] - Rev 1777
Go to most recent revision | Compare with Previous | Blame | View Log
// 2002-05-13 namespace __gnu_test { enum region { oriental, egyptian, greek, etruscan, roman }; // Test one. class gnu_obj_1 { protected: typedef region antiquities; static const bool test = true; static const int key1 = 5; static long key2; static antiquities value; public: gnu_obj_1(antiquities a, long l) {} }; const bool gnu_obj_1::test; const int gnu_obj_1::key1; long gnu_obj_1::key2 = 77; gnu_obj_1::antiquities gnu_obj_1::value = oriental; // Test two. template<typename T> class gnu_obj_2: public virtual gnu_obj_1 { public: static antiquities value_derived; public: gnu_obj_2(antiquities b): gnu_obj_1(oriental, 7) { } }; template<typename T> typename gnu_obj_2<T>::antiquities gnu_obj_2<T>::value_derived = etruscan; // Test three. template<typename T> class gnu_obj_3 { public: typedef region antiquities; static gnu_obj_2<int> data; public: gnu_obj_3(antiquities b) { } }; template<typename T> gnu_obj_2<int> gnu_obj_3<T>::data(etruscan); } // instantiate templates explicitly so their static members will exist template class __gnu_test::gnu_obj_2<int>; template class __gnu_test::gnu_obj_2<long>; template class __gnu_test::gnu_obj_3<long>; int main() { using namespace __gnu_test; gnu_obj_1 test1(egyptian, 4589); gnu_obj_2<long> test2(roman); gnu_obj_3<long> test3(greek); return 0; }
Go to most recent revision | Compare with Previous | Blame | View Log