以下类模板Sequencer
包含一个嵌套类模板Process
,带有两个模板参数。
template<typename P>
struct Sequencer
{
template<typename A , bool = A::CAN_BE_BUFFERED>
struct Process;
};
我想专门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