此代码不编译c ++

时间:2015-12-10 15:37:15

标签: c++ visual-studio c++11

我有这个代码,但是它没有用,我正在使用vs2010

NULL

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

关键字 constexpr 是在C ++ 11中引入的,并在C ++ 14中进行了改进。这意味着不断表达。与 const 一样,它可以应用于变量,以便在任何代码尝试修改值时引发编译器错误。与const不同,constexpr也可以应用于函数和类构造函数。 constexpr表示值或返回值是常量,如果可能,将在编译时计算。在需要constexpr整数的任何地方都可以使用const整数值,例如在模板参数和数组声明中。当一个值可以在编译时而不是运行时计算,它可以帮助您的程序更快地运行并使用更少的内存。检查this

constexpr支持vs2010 ,但vs2015支持vs,请this查看{{1}支持的内容实际上vs2010并不完全支持C++11,所以你可以在这里更新你的编译器。

所以你可以使用vs2015,或者你可能不会在这里使用constexpr,你可以查看link以查看constconstexpr之间的区别,因此,如果可能,您可以使用const代替constexpr

它们之间的主要区别在于前一个链接:

  • const 适用于变量,并阻止在代码中修改它们。

  • constexpr 告诉编译器该表达式产生编译时常量值,因此可以在数组长度,分配给const变量等场合使用。