Предположим, у меня есть следующий код:
template<bool t>
class A{
class B{
class C{
public:
void foo();
};
};
};
template<bool t>
void A<t>::B::C::foo() {
// some code
}
при написании определения этой функции foo()
, я хочу избежать написания слишком длинного вложенного спецификатора имени A<t>::B::C::
, но использовать что-то вроде aShortAlias<t>::foo()
вместо. Возможно ли это с C ++?
Видимо, использование using aShrtAlias<t> = typename A<t>::B::C
не работает. И я действительно не хочу использовать #define
в качестве обходного пути, поскольку он выполняет только замену текста (может быть, здесь есть какое-то оправдание для #define
?).