这看起来像一个非常基本的问题应该有一个明确的可回答的答案,但到目前为止我还无法找到它。 似乎就像答案是否定的,但我想确定。 我的意思是这样的事情:
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开始才有用。
答案 0 :(得分:0)
比这更容易。看看统一初始化的力量:
foo({1,2});