m-static.cc

来自「这个是LINUX下的GDB调度工具的源码」· CC 代码 · 共 73 行

CC
73
字号
// 2002-05-13enum 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);// 2002-08-16// Test four.#include "m-static.h"// instantiate templates explicitly so their static members will existtemplate class gnu_obj_2<int>;template class gnu_obj_2<long>;template class gnu_obj_3<long>;int main(){  gnu_obj_1		test1(egyptian, 4589);  gnu_obj_2<long>	test2(roman);  gnu_obj_3<long>	test3(greek);  gnu_obj_4		test4;  return 0;				// breakpoint: constructs-done}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?