草庐IT

switch-constexpr

全部标签

c++ - 一个类不能有自己的静态 constexpr 成员实例吗?

这段代码给了我incompletetype错误。问题是什么?一个类是否不允许有自己的静态成员实例?有没有办法达到同样的效果?structSize{constunsignedintwidth;constunsignedintheight;staticconstexprSizebig={480,240};staticconstexprSizesmall={210,170};private:Size()=default;}; 最佳答案 一个类被允许有一个相同类型的静态成员。但是,一个类在其定义结束之前是不完整的,并且不能定义具有不完整类型

c++ - 使用 switch 语句进行范围检查

我的老师指定了一个程序来同时使用if-else语句和switch语句,因此我们了解如何实现这两种语句。该程序要求我们提示用户分别以磅和米为单位输入他们的体重和高度。这是我的尝试:没有开关#include"stdafx.h"#includeusingnamespacestd;intmain(){doubleheight,weight,BMI,heightMeters,weightKilo;constdoubleKILOGRAMS_PER_POUND=0.45359237;constdoubleMETERS_PER_INCH=0.0245;cout>height>>weight;weigh

c++ - 使用 switch 语句进行范围检查

我的老师指定了一个程序来同时使用if-else语句和switch语句,因此我们了解如何实现这两种语句。该程序要求我们提示用户分别以磅和米为单位输入他们的体重和高度。这是我的尝试:没有开关#include"stdafx.h"#includeusingnamespacestd;intmain(){doubleheight,weight,BMI,heightMeters,weightKilo;constdoubleKILOGRAMS_PER_POUND=0.45359237;constdoubleMETERS_PER_INCH=0.0245;cout>height>>weight;weigh

c++ - C++ 17中的静态constexpr和静态内联变量有什么区别?

在C++17中,我们得到内联变量。它们的用途之一是在类中定义常量字段。那么这两个常量定义有什么区别:classMyClass{staticconstexprintmyFirstVar=10;staticconstinlineintmySecondVar=100;};当然constexpr使myFirstVar隐式内联。这里有什么更好的选择,使用constexpr或inline?注意:当你不需要constness时,inline会更容易。使用constexpr你没有那个选择。 最佳答案 您不必在声明时为mySecondVar指定初始化

c++ - C++ 17中的静态constexpr和静态内联变量有什么区别?

在C++17中,我们得到内联变量。它们的用途之一是在类中定义常量字段。那么这两个常量定义有什么区别:classMyClass{staticconstexprintmyFirstVar=10;staticconstinlineintmySecondVar=100;};当然constexpr使myFirstVar隐式内联。这里有什么更好的选择,使用constexpr或inline?注意:当你不需要constness时,inline会更容易。使用constexpr你没有那个选择。 最佳答案 您不必在声明时为mySecondVar指定初始化

c++ - lambda 函数/表达式是否支持 constexpr?

structTest{staticconstintvalue=[]()->int{return0;}();};使用gcc-4.6我得到类似error:functionneedtobeconstexpr的东西。我尝试了多种组合将constexpr放在不同的地方,但没有运气。constexpr是否也支持lambda函数(无论是否指定了return类型)?正确的语法是什么?任何可能的解决方法? 最佳答案 更新:从C++17开始,常量表达式中允许使用lambda。根据[expr.const]/(2.6),目前(C++14)不允许在常量表达式

c++ - lambda 函数/表达式是否支持 constexpr?

structTest{staticconstintvalue=[]()->int{return0;}();};使用gcc-4.6我得到类似error:functionneedtobeconstexpr的东西。我尝试了多种组合将constexpr放在不同的地方,但没有运气。constexpr是否也支持lambda函数(无论是否指定了return类型)?正确的语法是什么?任何可能的解决方法? 最佳答案 更新:从C++17开始,常量表达式中允许使用lambda。根据[expr.const]/(2.6),目前(C++14)不允许在常量表达式

C++ 11 - constexpr函数中的static_assert?

如何在constexpr函数中正确执行static_assert?例如:constexprintdo_something(intx){static_assert(x>0,"xmustbe>0");returnx+5;}这不是有效的C++11代码,因为constexpr函数必须只包含return语句。我不认为标准对此有异常(exception),尽管GCC4.7不允许我编译这段代码。 最佳答案 ThisisnotvalidC++11code,becauseaconstexprfunctionmustonlycontainareturn

C++ 11 - constexpr函数中的static_assert?

如何在constexpr函数中正确执行static_assert?例如:constexprintdo_something(intx){static_assert(x>0,"xmustbe>0");returnx+5;}这不是有效的C++11代码,因为constexpr函数必须只包含return语句。我不认为标准对此有异常(exception),尽管GCC4.7不允许我编译这段代码。 最佳答案 ThisisnotvalidC++11code,becauseaconstexprfunctionmustonlycontainareturn

javascript - 从 switch 语句中返回是否被认为是比使用 break 更好的做法?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭11个月前。社区在上个月审核了是否重新打开这个问题并关闭:原始关闭原因未解决Improvethisquestion选项1-switch使用return:functionmyFunction(opt){switch(opt){case1:return"One";case2:return"Two";case3:return"Three";default:return"";}}选项2-switch使用break:functionmyFunc