sel*_*tze 10
有几种选择.我想到的第一件事是C++允许在多个翻译单元中定义类模板的静态数据成员:
template<class T>
struct dummy {
static int my_global;
};
template<class T>
int dummy<T>::my_global;
inline int& my_global() {return dummy<void>::my_global;}
Run Code Online (Sandbox Code Playgroud)
链接器将多个定义合并为一个.但是inline单独也可以在这里提供帮助,这个解决方案更简单:
inline int& my_global() {
static int g = 24;
return g;
}
Run Code Online (Sandbox Code Playgroud)
您可以将此内联函数放入头文件中,并将其包含在许多翻译单元中.C++保证此内联函数返回的引用始终引用同一对象.确保该功能具有外部链接.
| 归档时间: |
|
| 查看次数: |
663 次 |
| 最近记录: |