【发布时间】:2017-02-23 15:38:37
【问题描述】:
自 C++11 起,std::complex<T>[n] 保证可别名为 T[n*2],并具有明确定义的值。这正是任何主流架构所期望的。对于我自己的类型(例如struct vec3 { float x, y, z; }),这种保证是否可以通过标准 C++ 实现,还是只有在编译器的特殊支持下才能实现?
【问题讨论】:
-
我们有一个特殊的语言例外来为标准库类型键入别名?每天学习新东西。
标签: c++ language-lawyer strict-aliasing type-punning