Tengo una buena comprensión de cómo funcionan la declaración y la directiva de C++' using '. Sin embargo, estoy perplejo en esto ... ¿Tal vez no sea posible? Quiero evitar tener que calidad de mi variables de enumeración:Espacio de nombres C++ 'using' declarativo para una clase 'enum
namespace Foo {
class MyClass {
public:
enum MyEnum { X, Y, Z };
}
}
Y ahora, desde fuera de ese espacio de nombres, me gustaría ser capaz de hacer cosas como:
using Foo::MyClass.MyEnum;
MyEnum letter = MyEnum::x;
Pero al parecer eso no es el camino ¿para hacerlo? Apuesto a que esto es posible, pero mi notación es incorrecta ... También intenté usar Foo :: MyClass :: MyEnum, pero luego el compilador piensa que Foo :: MyClass es un espacio de nombres.
Agregado: Como se puede ver, se convierte en molesto tener que declarar completamente todo ...
Foo::MyClass::MyEnum value = Foo::MyClass::X;
¿Dónde intentas poner 'using'? Dentro de una clase, o? –
posible duplicado de [using declaration with enum?] (Http://stackoverflow.com/questions/438192/using-declaration-with-enum) –
@Kiril, dentro de un método que está en una clase diferente que NO está en el espacio de nombres Foo. – Jmoney38