是否可以使用初始化列表创建临时结构/类?

时间:2015-12-15 16:16:45

标签: c++ c++11 initialization

这看起来像一个非常基本的问题应该有一个明确的可回答的答案,但到目前为止我还无法找到它。 似乎就像答案是否定的,但我想确定。 我的意思是这样的事情:

struct A { int a,b; };
void foo(const A&); // just some function
foo(A{1,2}); // doesn't work, but it was a long shot
foo(A({1,2})); // looks like it could have worked, but it doesn't
foo(A(std::initializer_list<int>({1,2}))); // ugly and doesn't work either anyway

更新: 选项2实际上有效(以及更简单的foo({1,2})),但仅限于vs2013,而不是2012年。

更新#2:来吧,有必要这么努力地投票吗?知道它只能从vs2013开始才有用。

1 个答案:

答案 0 :(得分:0)

比这更容易。看看统一初始化的力量:

foo({1,2});