如何为枚举类编写“使用”语句?

Vic*_*ard 8 c++ enumeration namespaces using class

在我写的石头,剪刀,剪刀程序中,我列举了三种不同的动作并将它们声明为一个类。但是,当我尝试编写using语句以便避免使用范围运算符时,它似乎不起作用。有人知道为什么吗?

enum class choice {rock, paper, scissors};

using namespace choice;

出现一条错误消息,说:[错误]'选择'不是名称空间名称。为什么是这样?我认为在这种情况下可以选择一个名称空间。

Bap*_*tou 21

在 C++20、P1099R5 中可以实现:

enum class choice {rock, paper, scissors};

using enum choice;
Run Code Online (Sandbox Code Playgroud)


ant*_*_rh 6

namespace choice
{
    enum class type {rock, paper, scissors};
    constexpr auto rock     = type::rock    ;
    constexpr auto paper    = type::paper   ;
    constexpr auto scissors = type::scissors;
}

int main()
{
    choice::type move;
    using namespace choice;
    move = rock;
    move = paper;
    move = scissors;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)


Pet*_*ker -1

choice不是命名空间,因此using namespace choice;无效。如果您不想使用作用域指示符,请不要使用作用域枚举。一个简单的枚举将适用于您到目前为止提到的内容:

enum choice { rock, paper, scissors };
Run Code Online (Sandbox Code Playgroud)