gpt4 book ai didi

c++ - Fusion 有尾部功能吗?

转载 作者:行者123 更新时间:2023-11-30 04:46:31 25 4
gpt4 key购买 nike

我需要一个可以像这样使用的类似尾部的函数:

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 的文档中,算法 下有一个名为转换 的部分。 Functions这里列出的特别包括一个名为 pop_front 的.这似乎正是我们想要的:

Returns a new sequence, with the first element of the original removed.
...

Example

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 选择这个名称是为了与标准库“更一致”。

关于c++ - Fusion 有尾部功能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56695239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com