C++标准(早于C++17)对初始化顺序有如下规定:
在同一翻译单元中以命名空间作用域定义、需要动态初始化的具有静态存储期的对象应按照它们在翻译单元中的定义顺序进行初始化。
C++17 引入了 内联变量,我认为这意味着一个具有静态存储期、命名空间作用域和动态初始化的变量可以在多个翻译单元中被定义。
C++是否保证这些变量的初始化顺序?
C++标准(早于C++17)对初始化顺序有如下规定:
在同一翻译单元中以命名空间作用域定义、需要动态初始化的具有静态存储期的对象应按照它们在翻译单元中的定义顺序进行初始化。
C++17 引入了 内联变量,我认为这意味着一个具有静态存储期、命名空间作用域和动态初始化的变量可以在多个翻译单元中被定义。
C++是否保证这些变量的初始化顺序?