【发布时间】:2018-08-09 10:38:59
【问题描述】:
up 和 up1 这里有什么区别?
为什么const 有效,而constexpr 无效?
class vec3 {
int x, y, z;
public:
vec3(int x, int y, int z) : x{x}, y{y}, z{z} {}
};
int main()
{
// Error C2127'up': illegal initialization of 'constexpr'
// entity with a non-constant expression
constexpr vec3 up{0, 1, 0};
const vec3 up1{0, 1, 0};
}
【问题讨论】:
-
很难从裁剪不佳的图像中分辨出来。
vec3是什么? -
请以文本形式提供minimal reproducible example,并附上复制粘贴的编译器错误消息。您要显示的是不是来自编译器的错误消息。
-
引用 g++:“'vec3' 不是聚合,没有普通的默认构造函数,也没有不是复制或移动构造函数的 constexpr 构造函数”
-
你的类在 Dtor 前面需要 constexpr