9

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 を使用しています。

これを機能させるための構文は何ですか?

4

1 に答える 1

13

いいえ、できません。

あなたがしたいのは、前方宣言し、そのすぐ下でTC定義することです。T

template<typename T, typename U>
struct TC;

template<typename A>
using T=TC<decltype(A::b),decltype(A::c)>;
于 2013-04-30T16:18:34.100 に答える