我想知道如果两者都写在一个头文件中,以下两个声明之间到底有什么区别:
inline thread_local MyClass obj1; // inline with thread_local
thread_local MyClass obj2; // no inline
正如 C++17 中所指定的,向变量添加内联会强制所有翻译单元看到该变量的相同地址。这是否意味着可以obj2
在不同的翻译单元中获得不同的地址值?什么情况下要强调我们应该使用obj1
而不是obj2
?