Функциональность C++11 с MinGW
Я пытаюсь использовать emplace()
Функция для unordered_map и компилятор говорит, что такой функции не существует.
я кладу -std=c+11
и это говорит cc1plus.exe: error: unrecognized command line option '-std=c+11'
Могу ли я как-то использовать функциональность C++11 с mingw?
1 ответ
C++0x было рабочим названием нового стандарта ISO C++, который затем был выпущен в 2011 году как C++ 11 и вводит множество новых функций в стандартный язык и библиотеку C++. Этот проект стремится реализовать новые возможности C++ 11 в GCC и сделать его одним из первых компиляторов, который внедрил C++ 11 для программистов C++.
Функции C++ 11 доступны как часть "основного" компилятора GCC в стволе хранилища Subversion GCC и в GCC 4.3 и более поздних версиях. Чтобы включить поддержку C++0x, добавьте параметр командной строки -std= C++0x в командную строку g ++. Или, чтобы включить расширения GNU в дополнение к расширениям C++0x, добавьте -std= gnu ++ 0x в командную строку g ++. GCC 4.7 и более поздние версии также поддерживают -std= C++ 11 и -std= gnu ++ 11.
Так, для gcc с 4.3 по 4.6 используйте -std= C++0x, для более поздней версии используйте -std= C++ 11. Поддержка библиотеки для map::emplace
был добавлен в gcc 4.8