Почему этот простой пример std :: thread не работает?

Пробовал следующий пример, скомпилированный с помощью g ++ -std = gnu ++ 0x t1.cpp и g ++ -std = c ++ 0x t1.cpp , но оба из них приводят к прерыванию примера.

$ ./a.out 
terminate called after throwing an instance of 'std::system_error'
  what():  
Aborted

Вот пример:

#include <thread>
#include <iostream>

void doSomeWork( void )
{
    std::cout << "hello from thread..." << std::endl;
    return;
}

int main( int argc, char *argv[] )
{
    std::thread t( doSomeWork );
    t.join();
    return 0;
}

Я пробую это на Ubuntu 11.04:

$ g++ --version
g++ (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2

Кто-нибудь знает, что я пропустил ?

44
задан Xeo 19 December 2011 в 01:34
поделиться