【发布时间】:2019-06-27 21:02:38
【问题描述】:
从 C++17 开始,可以使用 inline 关键字在标头中初始化全局变量和静态成员。虽然我理解为什么需要保护函数中的静态变量(因为即使在多线程上下文中初始化也应该只发生一次),但我不明白为什么这些新的内联变量也受到保护(你可以在这里看到:https://godbolt.org/z/YF8PeQ) .我认为在任何情况下,所有全局变量和静态成员的初始化都发生在程序执行开始时(甚至在main() 之前),因此此时无需考虑多个线程。请解释一下好吗?
【问题讨论】: