gpt4 book ai didi

C++ 命名空间 'using' 类枚举的声明

转载 作者:可可西里 更新时间:2023-11-01 16:10:50 30 4
gpt4 key购买 nike

我非常了解 C++“using”声明和指令的工作原理。但是,我对此感到难过......也许这是不可能的?我想避免对我的枚举变量进行质量检查:

namespace Foo { 
class MyClass {
public:
enum MyEnum { X, Y, Z };
}
}

现在,从该命名空间之外,我希望能够执行以下操作:

using Foo::MyClass.MyEnum;
MyEnum letter = MyEnum::x;

但显然这不是解决问题的方法?我打赌这是可能的,但我的符号是错误的...我也尝试使用 Foo::MyClass::MyEnum,但编译器认为 Foo::MyClass 是一个命名空间。

补充:如您所见,必须完全声明所有内容变得很烦人......

Foo::MyClass::MyEnum value = Foo::MyClass::X;

最佳答案

这不会直接回答您的问题,但如果您想节省击键次数,您可以尝试使用 typedef。

typedef Foo::MyClass::MyEnum MyClassEnum;

顺便说一句,它看起来像your question has been asked on Stack Overflow before .从这个问题的答案:

A class does not define a namespace, therefore "using" isn't applicable here.

关于C++ 命名空间 'using' 类枚举的声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6298389/

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