c++ - 无法在枚举中声明 "div"

标签 c++ enums namespaces scope

我想声明一个具有如下基本数学运算的枚举:

enum Operations 
{
    div,
    mul,
    add,
    sub
};

但编译器会提示此声明,因为 div 是 C++ 中的保留关键字。我怎样才能覆盖它?或者有什么解决办法吗?

这是错误信息:

error: ‘div’ redeclared as different kind of symbol /usr/include/stdlib.h:158: error: previous declaration of ‘div_t div(int, int)’

最佳答案

div不是关键字,而是标准库函数,在 stdlib.h 中声明,也可能在 cstdlib 中声明。

最简单的解决方案是使用不同的标识符。否则,您可以使用范围枚举:

enum class Operations 
{
    div,
    mul,
    add,
    sub
};

这会将枚举的值放入 Operations 范围(Operations::divOperations::mul 等)

关于c++ - 无法在枚举中声明 "div",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24221148/

相关文章:

c++ - 防止创建成员函数都是静态的类

c++ - 确保使用自定义类型

c++ - 文件无法在 C++ 中打开

c# - 绑定(bind)一个枚举

c# - asp :dropdownlist doesn't save users selected value c# asp. 净aspx

Clojure - 相同的函数名不同的命名空间

c++ - OpenGl 多边形旋转

c++ - 在系统编程和c++编程一样吗?

generics - 在 F# 中使用泛型创建 EnumArray 类型

java - 仅匹配命名空间中的 XML 节点,而不知道 NS 前缀