次のクラス テンプレートには、2 つのテンプレート引数を持つSequencer
ネストされたクラス テンプレートが含まれています。Process
template<typename P>
struct Sequencer
{
template<typename A , bool = A::CAN_BE_BUFFERED>
struct Process;
};
次のように、テンプレート引数を 1 つだけサポートするように独自のバージョンを特化しながらSequencer
、カスタムに特化したいと考えています。struct Foo
Process
template<>
struct Sequencer<Bar>
{
template<typename A>
struct Process;
};
実装が長すぎるので、リスト全体をideoneに投稿しました。
GCC 4.5.3 では、次のエラー メッセージが表示されます。
prog.cpp:60:24: error: partial specialization ‘Sequencer<Bar>::Process<A>’ does not specialize any template arguments
Visual Studio 2008 では、次のエラーが表示されます
prog.cpp(62) : error C2753: 'Sequencer<Bar>::Process<A>' : partial specialization cannot match argument list for primary template