У меня есть хорошее понимание того, как C ++ 'используя' декларацию и директивы работают.Тем не менее, я поставлен в тупик на этом ... Может быть, это не возможно?Я хочу избежать необходимости проверять мои переменные перечисления:
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;