部分专门化模板内的方法指针
我正在尝试实现具有只读、只写和读写行为的属性。我认为模板专业化将是这里的方法,所以我尝试了这个:
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):部分专业化不能有依赖的非类型模板参数。
我在这里迷路了,这可能吗?
感谢您抽出时间, 理查德.
I'm trying to implement properties with readonly, writeonly and readwrite behaviour. I thought template specialization would be the way to go here, so I tried this:
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>
{
...
}
This doesn't work and gives an compiler error (VC): a partial specialization cannot have a dependent non-type template parameter.
I'm lost here, is this at all possible?
Thanks for your time,
Richard.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用不太专业的方法,例如:
you can use less specialized approach like: