gpt4 book ai didi

c++ - C++11 中的静态导入(例如枚举类)

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:30:20 28 4
gpt4 key购买 nike

我对枚举类的使用(VS2012):

class matrix {
public:
enum class operation_type {ADD, MULT};
matrix(operation_type op);
...
}

在我使用的另一个片段中

matrix* m = new matrix(matrix::operation_type::ADD);

如果名字很长,这会变得很乱。

是否有可能以某种方式导入枚举值以便我可以写:

matrix* m = new matrix(ADD);

同样适用于嵌套类 - 我可以导入它们吗?

最佳答案

,这是不可能的。

您不能省略 operation_type 部分,因为您已将其设为作用域 枚举(这就是作用域枚举的全部内容)。如果你想避免它,你必须使它成为一个无范围的 enum(删除 class 关键字)。

此外,在 matrix 之外,您不能通过 using 声明导入成员名称,就好像 matrix 是一个命名空间一样。此外,根据 C++11 标准的第 7.3.3/7 段:

A using-declaration shall not name a scoped enumerator.

关于c++ - C++11 中的静态导入(例如枚举类),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15450029/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com