Mam ten prosty program, który działa z wątkami. W Clangu dostaję masę mylących, nieistotnych błędów. Oto program:Dlaczego ten podstawowy program wątku kończy się niepowodzeniem z Clang, ale przechodzi w g ++?
#include <iostream>
#include <thread>
#include <future>
int main()
{
std::packaged_task<int()> task([] { return 1; });
std::future<int> result = task.get_future();
task();
std::cout << "Result was: " << result.get();
}
Błędy:
error: no matching constructor for initialization of 'duration' (aka '
std::chrono::duration<long, std::ratio<1, 1000000> >
') : _d(_t.time_since_epoch()) note: in instantiation of function template specialization'std::chrono::time_point<std::chrono::system_clock, std::chrono::duration<long, std::ratio<1, 1000000> > >::time_point<std::chrono::duration<long, std::ratio<1, 1000000000> > >'
requested here
Jest dużo więcej, ale można go zobaczyć w this link programu. Dziwnie, kompiluje się dobrze w g ++ 4.7.3 i 4.6.3. Dlaczego tak się dzieje tylko w Clang?
Aktualizacja: Jak zauważył David, wydaje się, że zawodzi tylko wtedy, gdy dołączam nagłówek <future>
.
Jaka wersja brzękiem? – mkb
@mkb 3.2, najnowsze, jakie zapewnia Liveworkspace. –
Możesz potrzebować '-stdlib = libC++' –