Подтвердить что ты не робот

Функциональность С++ 11 с помощью MinGW

Я пытаюсь использовать функцию emplace() для unordered_map, и компилятор говорит, что такая функция не существует.

Я положил -std=c+11, и он говорит cc1plus.exe: error: unrecognized command line option '-std=c+11'

Можно ли каким-то образом использовать С++ 11 с помощью mingw?

4b9b3361

Ответ 1

Из Документация GCC

С++ 0x было рабочим именем нового стандарта ISO С++, который был тогда выпущенный в 2011 году как С++ 11 и представляет множество новых функций в стандартный язык С++ и библиотека. Этот проект направлен на реализацию новые возможности С++ 11 в GCC и сделать его одним из первых компиляторов для запускать программистов на С++ 11 на С++.

Функции С++ 11 доступны как часть компилятора GCC "mainline" в ствол репозитория GCC Subversion и в GCC 4.3 и более поздних версиях. к включить поддержку С++ 0x, добавить параметр командной строки -std = С++ 0x в вашей командной строки g++. Или, чтобы включить расширения GNU в дополнение к С++ 0x, add -std = gnu ++ 0x в вашу командную строку g++. GCC 4.7 и позже поддерживайте -std = С++ 11 и -std = gnu ++ 11.

Итак, для gcc с 4.3 по 4.6 используйте -std = С++ 0x, для более поздней версии используйте -std = С++ 11. Поддержка библиотеки map::emplace была добавлена ​​в gcc 4.8