Paketlenmiş görevleri kullanırken çok garip bir şeyle karşılaşıyorum. ~packaged_task okurken, bir std::packaged_task
çalıştırılmadan önce imha edilirse, sözün kırılması ve geleceğinden sonuç elde etme girişiminin std::future_error
atması gerektiği izlenimini edinirim. Ancak, Visual Studio 2013'te bu durum böyle görünmüyor. Bu Aşağıdaki kodu alın: Ben yürütülecek paketlenmiş görev için bekleyen bir std::future_error
engeller f.get()
üzerinde ancak bunun yerine almak için bekliyorumstd :: packaged_task imha üzerindeki sözleri kırmıyor mu?
#include <iostream>
#include <future>
#include <functional>
int main() {
std::future<int> f;
{
std::packaged_task<int()> task([](){return 3; });
f = task.get_future();
}
std::cout<<f.get()<<std::endl;
return 0;
}
.
başka derleyici çalışılıyor: http://ideone.com/Wt0WOc gerçekten ben Visual Studio 2013 bir hata görmeye ya da ben bir şey kaçırmış bir std::future_error("Broken promise")
...
Am atmak geliyor?
Bu bağlantıları doğru şekilde okudum, bu VS 2013'te düzeltilmeyecek mi? –
@EmilyL. Çok az ihtimal var. [Bu sayfanın SSS bölümünde yer alan Q5] 'e göre (http://blogs.msdn.com/b/vcblog/archive/2013/06/28/c-11-14-stl-features-fixes-and-breaking -changes-in-vs-2013.aspx), sadece nadiren hata düzeltmelerini geri yüklerler. –
Harika, satın aldığımız stüdyo neredeyse bir yaşında ve zaten bizi bir çimdik içinde bırakıyorlar. * iç çek * Onay için teşekkürler. Bu cevabı kabul etmek, son teyidi şüphelerime koydu. –