C ++ 11標準8.5.4リストの初期化の例:
std::map anim = { {"bear",4}, {"cassowary",2}, {"tiger",7} };
しかし、私はVC10、gcc 4.6、Comeauを試しました。何故ですか ?
-std = c ++ 0x
コメントのすべての答えに感謝します。
私はその後、C ++ 98と03の標準を確認しました。そして確かに、8.5.4は間違いなくC ++ 11の新しい秒です! そのため、すべてのコンパイラで完全にサポートされていません。
フラグ-std = c ++ 0xをgcc 4.6.1で追加したら、これでコンパイルが完了します。
参照が必要なもののテストコードを追加する:
#include #include #include #include using namespace std; int main() { std::map collection = {{"bear",4}, {"cassowary",2}, {"tiger",7}}; for(auto it: collection) std::cout << it.first << " has value " << it.second << std::endl; return 0; }