std::thread error (thread not member of std) std::thread error (thread not member of std) multithreading multithreading

std::thread error (thread not member of std)


gcc does not fully support std::thread yet:

http://gcc.gnu.org/projects/cxx0x.html

http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html

Use boost::thread in the meantime.

Edit

Although the following compiled and ran fine for me with 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;}

Compiled with

g++ -Wall -g -std=c++0x -pthread main.cpp

Output of a.out:

Printing from another thread

Can you provide the full code? Maybe there's some obscure issue lurking in those ...s?


Drop -ansi, it means -std=c++98, which you obviously don't want. It also causes macro __STRICT_ANSI__ to be defined and this may change the behavior of the headers, e.g. by disabling C++0x support.


I had the same issue on windows using MinGW. I found wrapper classes for in on github mingw-std-threads Includingmingw.mutex.h, mingw.thread.h files to global MinGW directory fixed this issue. All I had to do is to include header file and my code stayed the same

#include "mingw.thread.h"...std::thread t(handle);...