Рассмотрим следующую короткую программу:
#include <thread>
int Foo() {
while (1);
}
int main(){
std::thread t(Foo);
std::thread s(Foo);
// (std::thread(Foo));
t.join();
}
Это компилируется и запускается (навсегда), с
g++ -Wl,--no-as-needed DoubleBufferTest.cc -o DoubleBufferTest -std=c++0x -pthread
В прокомментированной строке я пытаюсь использовать описанную здесь технику, чтобы анонимно анонсировать новую тему. Однако, когда эта строка будет прокомментирована, я могу скомпилировать, но запуск дает следующую ошибку:
terminate called without an active exception
Aborted (core dumped)
Как я могу анонимно объявить поток?
Заметьте, я на g++ 4.4.7
.