I have a struct X defined, which defines some types inside of it:
struct X {
using A = int;
using B = double;
// ...
};
Now, it is possible to use these types outside of the class using typename
, e.g.:
typename X::A a = 3;
typename X::B b = 3.5;
My question: If X
was a namespace, then it would have been possible to use using namespace X
to avoid typing typename X::...
all of the time, but since X
is a class, then we cannot do that. Is there any way to use the namespace X
in order to avoid typing typename X::...
all of the time?
Doing something like using namespace X
does not seem to work. It is possible to use a singular type, using something like using A = X::A
however I want a way to do this automatically for all types defined within a class.
Note that X
may be a templated class, if that matters.
CodePudding user response:
Namespaces are designed for that purpose and gives more possibilities than classes in that respect.
But no, there is no such thing as using classspace X; A a = 3;
(or equivalent) for class-name scope.
Considering that using namespace ...
is often considered a bad practice, I doubt it will come soon.