Questo codice è valido o il mio compilatore è rotto?È std :: promise broken sulla mia macchina (usando g ++ - mp)?
#include <future>
#include <iostream>
int main() {
std::cout << "doing the test" << std::endl;
std::promise<bool> mypromise;
std::future<bool> myfuture = mypromise.get_future();
mypromise.set_value(true);
bool result = myfuture.get();
std::cout << "success, result is " << result << std::endl;
return 0;
}
ecco l'output:
$ g++-mp-4.8 -std=c++11 test.cpp
$ ./a.out
doing the test
Segmentation fault: 11
$
sto usando g ++ - mp-4.8, che è il gcc 4.8 da MacPorts.
Sto impazzendo?
Beh, si blocca in Ideone così: http://ideone.com/wNsr1h. Non conosco queste librerie molto bene, ma suppongo che questo non sia probabilmente il modo giusto per usarle. – templatetypedef
Nessun segfault su Linux/g ++ - 4.7.2, ma invece 'std :: system_error' viene lanciato. –
Funziona bene anche su stacked-crooked.com: http://coliru.stacked-crooked.com/view?id=df733168554395fe0d5e28982f5b4899-61c3814520a8d4318f681038dc4b4da7 – Nawaz