是进驻可能带豆荚?这似乎并不在Visual Studio 2012的工作:
struct X
{
int a;
int b;
};
void whatever()
{
std::vector<X> xs;
X x = {1, 2};
// okay
xs.push_back(x);
// okay
xs.emplace_back(x);
//error C2661: 'X::X': error C2661: no overloaded function takes 2 arguments
xs.emplace_back(1, 2);
}
这是刚刚的Visual Studio 2012的一个缺点,还是安放一个POD根本不起作用在C++ 11?
它构建它的地方。没有这样的构造函数。 – chris
我不认为它是确定性的,但g ++(4.7.1)也不接受它。 –
我想你可能必须有一个'X'的构造函数,它带有两个参数(如错误消息所示)。 –