boost vec(x,y,z)函数定义在哪里?

3
我在许多Boost库中看到了这个函数vec(...)。它使用一些模板元编程来进行类型推断,构造一个具有您放置在其中的值的向量。例如:
vec(1,2)返回填充为1,2的vector vec(1.1,2.2,3.3) 返回填充为1.1、2.2和3.3的vector 它非常有用于测试以及传递向量值参数。但是我找不到它定义在哪个头文件中,而且搜索“Boost vec”是毫无用处的,因为显然你会得到关于vector类的无数结果。
有人知道它定义在哪里吗?

你在哪里看到使用这个函数的?我从来没有见过它... - Tom
2个回答

2
你是在提到boost::assign库吗?
它不是你提到的那个构造函数,但它很相似。

我以前使用过boost assign,虽然它有一个类似的结构,但并不完全符合我的要求。Assign库仍然需要您先定义容器(vector<int> v;),然后再分配给它(v+=1,2,3)。我正在寻找的函数可以一次完成所有操作。我将查看代码,看看是否可以找到另一个使用它的boost库。 - JHSaunders
@JHSaunders 是的,如果你想要在一行中初始化,你可以使用 list_of。例如:vector<int> v=list_of(1)(2)(3);(虽然不是你想要的那么短,但仍然不错)。 - Tom
我已经到处搜索我的神秘函数,并得出结论,它一定是一个梦或其他什么东西。感谢您指出list_of(),它同样有效。 - JHSaunders
@JHSaunders 我想我可能已经找到了您的vec初始化的来源 - boost::spirit库 http://www.boost.org/doc/libs/1_46_0/libs/spirit/doc/html/spirit/qi/tutorials/number_list___stuffing_numbers_into_a_std__vector.html - Tom

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接