部分特化方法指针在模板内

时间:2010-12-24 12:23:52

标签: c++ templates specialization template-specialization

我正在尝试使用readonly,writeonly和readwrite行为来实现属性。我开始模板专业化将是这里的方式,所以我尝试了这个:

template<typename Class, typename Type, void (Class::*Set)(Type), Type (Class::*Get)(void)>
class Property;

template <typename Class, typename Type, Type (Class::*Get)(void)>
class Property<Class, Type, NULL, Get>
{
  ...
}

这不起作用并且给出编译器错误(VC):部分特化不能具有依赖的非类型模板参数。

我迷失在这里,这有可能吗?

谢谢你的时间, 理查德。

1 个答案:

答案 0 :(得分:1)

你可以使用不太专业的方法,如:

template<typename Class, typename Type, typename Get_functor, typename Set_functor>
class Property;

template <typename Class, typename Type, typename Get_functor>
class Property<Class, Type, NULL, Get_functor>
{
  ...
}