Powiel możliwe:
C++11 emplace_back on vector<struct>?emplacing strąk
Czy umieszczanie możliwe wstrąkach? Nie wydaje się, aby pracować w 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);
}
Czy to po prostu wada Visual Studio 2012, czy też emplacing POD po prostu nie działa w C++ 11?
Konstruuje go na miejscu. Nie ma takiego konstruktora. – chris
Nie uważam tego za ostateczny, ale g ++ (4.7.1) również tego nie akceptuje. –
Myślę, że prawdopodobnie musisz mieć konstruktor dla 'X', który bierze dwa argumenty (jak sugeruje komunikat o błędzie). –