私は私が間違ってemplace_back
を理解している場合このように、私は本当に疑問に思って正しくC++ 0xのemplace_back
#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
}
をemplace_back
を理解している場合、私は疑問に思う:私それはコピーを作成するを防止するであろうけれどもHero
の場合はにという項目が作成されているためです。
私のg ++ - 4.7.0で実装エラーですか?
これはもはやC++ 0xです。今はちょうどC++です! ':)' –