Я скомпилировал и установил gcc4.4 с помощью macports.
Когда я пытаюсь скомпилировать использование-> g ++-g - Стена-ansi-pthread-std=c ++ 0x main.cpp...:
#include <thread>
...
std::thread t(handle);
t.join();
....
Возвраты компилятора:
cserver.cpp: In member function 'int CServer::run()':
cserver.cpp:48: error: 'thread' is not a member of 'std'
cserver.cpp:48: error: expected ';' before 't'
cserver.cpp:49: error: 't' was not declared in this scope
Но std::cout <<...
прекрасные компиляции..
Кто-либо может помочь мне?
gcc еще не полностью поддерживает std :: thread:
http://gcc.gnu.org/projects/cxx0x.html
http://gcc.gnu.org/onlinedocs/libstdc++/manual /status.html
Тем временем используйте boost :: thread .
Править
Хотя следующее скомпилировано и нормально работало для меня с gcc 4.4.3:
#include <thread>
#include <iostream>
struct F
{
void operator() () const
{
std::cout<<"Printing from another thread"<<std::endl;
}
};
int main()
{
F f;
std::thread t(f);
t.join();
return 0;
}
Скомпилировано с
g++ -Wall -g -std=c++0x -pthread main.cpp
Вывод a.out
:
Printing from another thread
Вы можете предоставить полную код? Может быть, в этих ...
s?
Отбросьте -ansi , это означает -std = c ++ 98, что вам явно не нужно. Это также вызывает определение макроса __ STRICT_ANSI __
, и это может изменить поведение заголовков, например отключив поддержку C ++ 0x.