前置声明一个模板别名

10

我有一个带有using指令的别名模板:

template<typename A>
using T=TC<decltype(A::b),decltype(A::c)>;

C++11有提供一种机制来前置声明模板别名T吗?

我尝试过:

template<typename> struct T;

并且:

template<typename>
using T;

但是两者都返回编译器错误(“与先前声明冲突”)。我正在使用gcc 4.8。

如何修改语法以使其正常工作?

1个回答

14
不,这是不可能的。
你想要做的是提前声明 TC,然后在其下面立即定义 T
template<typename T, typename U>
struct TC;

template<typename A>
using T=TC<decltype(A::b),decltype(A::c)>;

这正是我担心的。我会再给问题几分钟,希望能得到另一个答案,然后可能会接受这个答案。 - mirk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接