c++ - 用另一个初始化的静态变量

标签 c++

我知道静态订单初始化失败,但我想知道以下是否也会触发它:

const static Point center = CalculateCenter();
static Point currentPoint = center;

我想要两个静态变量(TU 中的内部链接),一个已初始化且常量,另一个在大量实例之间共享,但首先它应该具有相同的值 中心.

这会触发静态订单初始化失败吗?如果是这样,我应该如何编码?

最佳答案

如果它们都在同一个编译单元中,那么就没问题(如果你对它们进行了正确的排序)。但如果不是,那么这是未定义的行为,因为初始化顺序。但是,您可以将 center 声明为 constexpr 而不是 const,然后 center 在编译时已知,这应该没问题,但是 CalculateCenter() 还需要是一个 constexpr,这在您的情况下可能是不可能的。

关于c++ - 用另一个初始化的静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36229714/

相关文章:

c++ - 具有-static 和-rdynamic 的backtrace_symbols()

c++ - 在这里出现 'sigbrt'错误的原因是什么?

c++ - 有没有办法在同一项目的另一个 .cpp 中使用 .cpp 中声明的静态 void

c++ - 如何在 UML 中绘制 namespace /包范围方法/变量?

c++ - 在 Windows 上的 Netbeans 中设置 Mysql C++ 连接器

c++ - GetKeyboardLayout 返回奇怪的布局

c++ - 编译器关于 this 指针和虚函数的详细信息

c++ - 如何处理跨平台 C++ 项目中的依赖关系?

java - 如何在 java 中执行 map[u].push_back(v) (c++)?

c++ - 如何在 C++ 中遍历目录时对数据进行分组