me pregunto si he entendido correctamente emplace_back
C++ 0x emplace_back con productos que no copiable
#include <vector>
using namespace std;
struct Hero {
Hero(const string&) {}
Hero(const char*) {}
Hero(int) {}
// forbid a clone:
Hero(const Hero&) = delete;
Hero& operator=(const Hero&) = delete;
};
int main() {
vector<Hero> heros1 = { "Bond", "Hulk", "Tarzan" }; // ERR: copies?
vector<Hero> heros;
heros.emplace_back(5); // ERR: copies
heros.emplace_back(string("Bond")); // ERR: copies
heros.emplace_back("Hulk"); // ERR: copies
}
Por lo tanto, estoy realmente preguntando si he entendido emplace_back
incorrectamente: Yo sin embargo sería evitar hacer una copia de Hero
, porque crea el artículo en el lugar.
¿O es un error de implementación en mi g ++ - 4.7.0?
Ya no es C++ 0x. ¡Es solo C++ ahora! ':)' –