станд.:: ошибка потока (распараллеливают не члена станд.),

Я скомпилировал и установил 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 <<... прекрасные компиляции..

Кто-либо может помочь мне?

23
задан Xeo 19 December 2011 в 02:09
поделиться

2 ответа

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?

14
ответ дан 29 November 2019 в 02:54
поделиться

Отбросьте -ansi , это означает -std = c ++ 98, что вам явно не нужно. Это также вызывает определение макроса __ STRICT_ANSI __ , и это может изменить поведение заголовков, например отключив поддержку C ++ 0x.

5
ответ дан 29 November 2019 в 02:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: