假设我有以下代码:
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
的合理性吗?)。