Функциональность C++11 с MinGW

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

я кладу -std=c+11 и это говорит cc1plus.exe: error: unrecognized command line option '-std=c+11'

Могу ли я как-то использовать функциональность C++11 с mingw?

1 ответ

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

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

Другие вопросы по тегам