C++学习 boost::apply_visitor说明
来源:互联网 发布:5个数相加等于100算法 编辑:程序博客网 时间:2024/05/29 07:54
函数 apply_visitor
boost::apply_visitor —
将给定的访问者应用到给定的 variant 的内容上,该过程在编译期进行类型安全检查,以确认所有类型均被访问者所处理。
摘要
template<typename Visitor, typename Variant> typename Visitor::result_type apply_visitor(Visitor & visitor, Variant & operand);template<typename Visitor, typename Variant> typename Visitor::result_type apply_visitor(const Visitor & visitor, Variant & operand);template<typename BinaryVisitor, typename Variant1, typename Variant2> typename BinaryVisitor::result_type apply_visitor(BinaryVisitor & visitor, Variant1 & operand1, Variant2 & operand2);template<typename BinaryVisitor, typename Variant1, typename Variant2> typename BinaryVisitor::result_type apply_visitor(const BinaryVisitor & visitor, Variant1 & operand1, Variant2 & operand2);template<typename Visitor> apply_visitor_delayed_t<Visitor> apply_visitor(Visitor & visitor);
说明
apply_visitor
的行为取决于它所操作的参数的数量(即除访问者以外的其它参数)。该函数的行为如下:
- 接受一个操作数的重载将以给定的
variant
操作数的内容调用给定的访问者的单参函数调用操作符。 - 接受两个操作数的重载将以给定的
variant
操作数的内容调用给定的访问者的二元函数调用操作符。 - 只接受一个访问者的重载将返回一个
泛型函数对象
,该对象接受一个或两个参数并以这些参数和visitor
调用apply_visitor
, 其行为和前面两项相似。(这种行为特别有用,例如当你需要对一个 variant 对象序列中的各个元素使用一个标准库算法时)。
variant
的各个有界类型。抛出:接受操作数的重载只会在给定的访问者抛出异常时抛出。只接受一个访问者的重载则不会抛出。(但是请注意,返回的函数对象 有可能在运行时抛出) 0 0
- C++学习 boost::apply_visitor说明
- boost::variant and boost::apply_visitor
- C++学习 Boost状态机说明statechart
- c/c++/boost字符串的学习
- Boost Test学习总结(C++)
- Boost Test学习总结(C++)
- boost安装说明
- boost安装说明
- [Boost系列] Boost学习
- 【BOOST学习】BOOST安装
- BOOST学习
- boost 学习
- BOOST学习
- Boost 学习
- Boost学习
- boost学习
- boost学习
- BOOST学习
- hsql语言
- zend studio 的插件之一 Emmet
- 陈怡暖:2015.5.21早间最强现货黄金白银操作建议
- HBase 系统架构
- MyEclipse 设置快速复制一行
- C++学习 boost::apply_visitor说明
- 2015年Q1中国市场前五大智能手机品牌
- MyEclipse导入项目时出现Access restriction:The type JPEGCodec is not accessible due to restriction on requir
- SiteMesh工作原理
- 20150521-OrCAD多页原理图器件按页编号的方法
- ios手势操作
- RabbitMQ(python实现)学习之一:简单两点传输“Hello World”的实现
- FCM算法中评价指数matlab程序
- emberjs--如何写hbs