Z
特定のテンプレートの任意のインスタンス化である型を渡したときに特化したいクラス テンプレートがありN
ます。
struct L {
template <typename S> void foo(S &) {/*...*/}
};
template <class T>
struct M {
template <typename S> void foo(S &) {/*...*/}
};
template <class T>
struct N {
template <typename S> void foo(S &) {/*...*/}
};
// I'd like to specialize this for TY==N<anything>
template <typename TX, typename TY>
struct Z {
void bar(TX &tx) { /*...*/ ty->foo(tx); /*...*/ }
TY *ty;
};
Z<int, L>
とZ<int, N<int>>
とはすべて有効なユース ケースであるため、テンプレート テンプレートに変換する方法Z<int, M<int>>
に沿って何もすることはできません。これを達成する方法はありますか?Z
Z<TX, TY>::bar(TX &)
TY
N