我正在尝试使用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):部分特化不能具有依赖的非类型模板参数。
我迷失在这里,这有可能吗?
谢谢你的时间, 理查德。
答案 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>
{
...
}