How do you import an enum into a different namespace in C++?

前端 未结 5 1751
心在旅途
心在旅途 2020-12-11 14:20

I have an enum in a namespace and I\'d like to use it as if it were in a different namespace. Intuitively, I figured I could use \'using\' or \'typedef\' to accomplish this,

5条回答
  •  一向
    一向 (楼主)
    2020-12-11 15:01

    Starting from C++11 you can use enum class. Importing enum class imports all its values:

    namespace foo
    {
    
    enum class bar {
        A
    };
    
    }
    
    namespace buzz
    {
    using foo::bar;
    }
    
    int main()
    {
        foo::bar f;
        foo::bar g = foo::bar::A;
    
        buzz::bar x;
        buzz::bar y = buzz::bar::A;
        buzz::bar z = foo::bar::A;
    }
    

    The code above successfully compiles: http://coliru.stacked-crooked.com/a/2119348acb75d270.

提交回复
热议问题