请参阅以下内容:
https://en.cppreference.com/w/cpp/language/definition#One_Definition_Rule
http://eel.is/c++draft/basic.def.odr#12
它声明类模板的多个定义、类模板的静态数据成员、部分模板特化等是允许的,并将作为一个单一的定义。太好了......但它没有在任何地方提到变量模板?
如果我在多个翻译单元中有以下内容:
template<typename T>
T my_data{};
inline void test() {
my_data<int> = 1;
}
Run Code Online (Sandbox Code Playgroud)
每个翻译单元是否会被赋予自己的定义以my_data生成多个符号,还是将它们全部有效地合并到程序中的单个定义中,其中调用test()一个翻译单元将修改另一个翻译单元的变量?
标准中哪里提到了这种行为?
| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |