テンプレートでローカルクラスを使用する方法は?
-
02-10-2019 - |
質問
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として使用されません。
所属していません StackOverflow