2

私は宿題をして、こことネットで答えを探しました。以下の単純なコードはコンパイルされていません。

#include <thread>
#include <iostream>

void hello()
{
    std::cout << "Hello from thread " << std::endl;
}

int main()
{
    std::thread t1(hello);
    t1.join();
    return 0;
}

これは非常に単純なコードですが、次のエラーが発生します。

Thread_Cpp11_002.cpp: In function 'int main()'
Thread_Cpp11_002.cpp:14:5: error: 'thread' is not a member of 'std'
Thread_Cpp11_002.cpp:14:17: error: expected ';' before 't1'
Thread_Cpp11_002.cpp:15:5: error: 't1' was not declared in this scope

そして、私は多くのことを試しましたが、どれもうまくいきませんでした:

  1. の代わりにt1使用する宣言threadstd::thread
  2. g++ 4.8.0 でコンパイルする
  3. 次のフラグを個別に、または一緒に使用します: -pthread-std=gnu++11-std=c++0x-std=c++11...

したがって、この質問はここに投稿する価値があると思います。

これらのコンパイルは、コマンド ラインから実行されました。動作させた後、C++98 で問題なく動作する Code::Blocks 12.11 を試してみます。

覚えておいてください、私は Windows Vista を使用しています。

4

1 に答える 1