2

我正在尝试使用只读、只写和读写行为来实现属性。我认为模板专业化将是这里的方法,所以我尝试了这个:

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):部分特化不能具有依赖的非类型模板参数。

我在这里迷路了,这可能吗?

谢谢你的时间,理查德。

4

1 回答 1

1

you can use less specialized approach like:

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>
{
  ...
}
于 2010-12-28T08:55:10.833 回答