询问枚举CovariancesContext中NUMBER_OF_CONTEXTS的取值是否为3
关于枚举成员NUMBER_OF_CONTEXTS的取值说明
你的判断不正确,NUMBER_OF_CONTEXTS的取值是2,不是3。
原因说明:
在C++的枚举类型中,未显式指定数值的枚举成员,会自动取前一个成员的数值加1。你给出的代码如下:
enum CovariancesContext : int { INVALID = -1, HORIZONTAL = 0, VERTICAL = 1, NUMBER_OF_CONTEXTS };
其中VERTICAL被显式赋值为1,紧跟其后的NUMBER_OF_CONTEXTS未指定数值,因此它的取值是1 + 1 = 2。
这类成员一般用来标记枚举中从常规有效成员开始的数量(这里指HORIZONTAL和VERTICAL,共2个),而非枚举成员的总个数。
内容的提问来源于stack exchange,提问作者Nick X Tsui
相关产品推荐
相关产品推荐

