Я загрузил версию MinGW с официального сайта: http://sourceforge.net/projects/mingw/files/ и установил ее на своей машине с Windows 7.
Запуск g++ --version
дает мне g++.exe (GCC) 4.8.1
, и я считаю, что GCC 4.8.1 поддерживает функции С++ 11, включая потоки.
Запуск g++ -std=c++11 main.cpp
успешно компилирует следующую программу.
//main.cpp
#include <memory>
int main() {
std::unique_ptr<int> a(new int);
return 0;
}
Но запустите g++ -std=c++11 main.cpp
в следующей программе:
//main.cpp
#include <mutex>
int main() {
std::mutex myMutex;
return 0;
}
дает ошибки:
main.cpp: In function `int main()`:
main.cpp:5:5: error: 'mutex' is not a member of 'std'
std::mutex myMutex;
^
main.cpp:5:16: error: expected ';' before 'myMutex'
std::mutex myMutex;
^
как будто <mutex>
не поддерживается. Компилятор не жалуется на #include <mutex>
, поэтому я понятия не имею, почему я получаю эту ошибку.