gpt4 book ai didi

c++ - 融合::vector + 融合::push_back = 融合::vector ?

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

我输入了一个包含两个元素的 vector 。然后我将另一个元素 push_back 到它,并期望什么结果类型也是一个 vector 。但事实并非如此。

例子:

typedef boost::fusion::vector<int, double> vec1;
typedef boost::fusion::result_of::push_back<vec1, std::string> vec2;
//boost::is_same<vec2, boost::fusion::vector<int, double, std::string>>::value == false

http://liveworkspace.org/code/361492801eebe24cc5679a1e899a5240

我做错了什么?

问候。

最佳答案

您已将 push_back 本身别名为 vec2。你需要使用

typedef boost::fusion::result_of::push_back<vec1, std::string>::type vec2;

但请记住,类型可能仍然不同,Fusion 算法不需要保留类型(并且由于 push_back 函数应该返回惰性 View ,然后 vec2 很可能是某种 View 类型)。唯一的保证是 vec2 将是 "A model of Forward Sequence." .

关于c++ - 融合::vector + 融合::push_back = 融合::vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8366887/

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