【发布时间】:2014-11-06 15:27:11
【问题描述】:
我正在实现一个访问者,以便将它与 boost 变体库 一起使用。
我想知道使用 const 引用类型专门化 boost::static_visitor<> 是否正确。
请注意我的问题如下:
将boost::static_visitor<> 转为boost::static_visitor<const T&> 有什么问题吗?
template<typename T>
struct my_visitor : public boost::static_visitor<const T&> {
template<typename U> const T& operator()(U& u) const {
// some code here .....
return X<U>::get_some_t(); // finally return some T.
}
};
【问题讨论】:
-
我很难理解你的问题,即使阅读了几次。您能否提供一个更完整的示例来说明您正在尝试做什么?
-
@MarkB 非常简单,我正在一个更复杂的场景中实现一个访问者,我在问题中出现了这个,我遇到了一些奇怪的错误。因此,为了放弃一些可能性,我想知道使用 const T& 专门化 static_visitor 模板是否有任何问题。我期待一些专家给我答案:不,那不应该给你任何问题。或者也许:是的,当你这样做时,会发生(...)。感谢您提前关注。
标签: c++ boost boost-variant static-visitor