c++ - 将枚举值传递给非标准的 int 参数吗?

标签 c++

例子:

enum SomeEnum
{
   DD,
   PP,
   NN
};

void someFunc(int a)
{
}

int main()
{
  SomeEnum e = DD;
   someFunc(a) // calls someFunc with value 0
  return 0;
}

这在 MSVC 中有效,但它是非标准的吗?

谢谢

最佳答案

enum 有一个底层整数类型(用于存储 enum 值的类型),enum 值可以是隐式转换为该整数类型的值。

在您的情况下,基础类型是 int,值为 0。一切正常。

关于c++ - 将枚举值传递给非标准的 int 参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10644754/

相关文章:

c++ - QScrollArea 与动态调整 subWidgets

c++ - Qt:如何在QTableWidgetItem中显示QComboBox?

c++ - 非中止断言 CppUnit

c++ - Visual Studio 2010 不显示局部变量的调试信息

c++ - 增加数组的大小会产生一些问题

c++ - 为什么 clang-tidy 建议在任何地方添加 [[nodiscard]] ?

c++ - 可变长度数据和零长度数组的二进制序列化,安全吗?

c++ - 生成变量的名称

c++ - Lambda 函数作为构造函数中 std::function 的默认参数

c++ - qt-creator 和 msvc 无法添加(静态)库