融合有尾部功能吗?
Does Fusion have a tail function?
我需要一个类似尾巴的功能,可以像这样使用:
boost::fusion::vector<char, int, float> a('a', 12, 5.5f);
boost::fusion::vector<int, float> b(12, 5.5f);
boost::fusion::copy( Tail(a), b );
在 Boost Fusion 的文档中,算法下有一个名为"转换">的部分。此处列出的函数特别包括一个名为 pop_front
的函数。这似乎完全符合我们的需求:
返回一个新序列,删除原始序列的第一个元素。
...例
assert(pop_front(make_vector(1,2,3)) == make_vector(2,3));
对于您的示例:
boost::fusion::vector<char, int, float> a('a', 12, 5.5f);
boost::fusion::vector<int, float> b(12, 5.5f);
boost::fusion::copy( boost::fusion::pop_front(a), b );
名称pop_front
有点奇怪,因为它实际上并没有修改输入序列,而是返回修改后的结果。但是,pop_front
来自C++标准库,它用于删除集合的第一个元素,例如 std::list::pop_front
.Boost Fusion选择这个名称是为了与标准库"更一致"。
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 多态性和功能结合
- 带内存和隔离功能的SQLite
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- 类模板的成员功能的定义在单独的TU中完全专业化
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 如何建立使用模板函数的lambda函数的尾部返回类型
- 如何在C++中获得"静态纯虚拟"功能?
- 两个文件使用彼此的功能-如何解决
- 我应该实现右值推送功能吗?我应该使用std::move吗
- QML按钮点击功能执行顺序
- 将尾部调用void(i32,..)位转换为llvm::函数以获取FnAttribute
- 无法理解此 return 语句的功能,没有它就会发生运行时错误
- 有没有可能有一个只有ADL才能找到的非好友功能
- 功能样式转换从 'int' 到 'ItemType' 的匹配转换
- 文件系统:复制功能的速度秘诀是什么
- 在用于格式4的arm模拟器中实现功能时的一个问题
- 如何在Directwrite中获得给定字体的可用OpenType功能
- 融合有尾部功能吗?
- 尾部调用优化是否适用于此功能?