質問

GCCは、ローカルクラスでテンプレートをインスタンス化することを承認していないようです。

template <typename T>
void f(T);

void g()
{
    struct s {};

    f(s()); // error: no matching function for call to 'f(g()::s)'
}

VCは文句を言いません。

どうすればいいですか?

役に立ちましたか?

解決

C ++ 03では、C ++ 0xはできません リフト しかし、その制限。

C ++ 03、 §14.3.1/2:

リンケージのないタイプ、名前のないタイプ、またはこれらのタイプから複合されたタイプのローカルタイプは、テンプレートタイプパラメーターのテンプレートargumentとして使用されません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top