Por que o destruidor do boost :: thread desanexa o thread juntável em vez de chamar terminate () como o padrão suger

De acordo com o rascunho da norma C ++ 0x, este código:

void simplethread()
{
    boost::thread t(someLongRunningFunction);
    // Commented out detach - terminate() expected.
    // t.detach();  
}

... deve resultar em uma chamada terminate (), mas na implementação atual (boost 1.46.1) dos threads de boost não ocorre, o thread simplesmente é desanexado no destruidor e continu

Minha pergunta é: por quê?

Eu pensei que o boost :: thread está tão alinhado com o rascunho padrão quanto possíve

Existe uma razão de design para isso? Será alterado nas versões futuras do boost :: thread?

questionAnswers(1)

yourAnswerToTheQuestion