Anthony Williams kitap C++ Concurrency in Action o std::copy_exception
kullanarak atma olmadan doğrudan bir istisna saklamak mümkündür gelecek için bir istisna kaydetme 4.2.4 yılında belirtmektedir. Ancak, std::copy_exception
'un tanımlandığı standart kitaplık üstbilgisini bulamıyor gibi görünüyor. Nereden bulabilirim?std :: copy_exception nerede tanımlandı?
14
A
cevap
20
tl; dr: std::copy_exception
son C++ 11 standardı için <exception>
içinde std::make_exception_ptr
yeniden adlandırıldı.
komite
(muhtemelenboost::copy_exception
gelen standart kopyalanan) adı
copy_exception
aşağıdaki nedenlerle yanıltıcı olduğuna karar verdi. argüman olarak verilen argüman olarak bir
exception_ptr
ile çağrıldığında
template <class E>
exception_ptr copy_exception(E e) {
try {
throw e;
} catch (...) {
return current_exception();
}
}
, fonksiyon exception_ptr
bir kopyası başka exception_ptr
işaret dönecekti sanki
copy_exception
fonksiyonu, onun argümanının bir kopyasına bir exception_ptr
döndürür exception_ptr
bağımsız değişkeninin ne gösterdiğine işaret etmek yerine. Bu durum için adı yanıltıcı olduğundan, işlev son C++ 11 standardı için std::make_exception_ptr
olarak yeniden adlandırıldı. Bu konuda ayrıntılı bilgi ve tartışma için C++ Standard Library Defect Report 1130'a bakın.
std::make_exception_ptr
işlevi <exception>
'da tanımlanmıştır.
İlgili konular
- 1. __dso_handle nerede tanımlandı?
- 2. bahar bulut uygulamasında port 8080 nerede tanımlandı?
- 3. hayır "başlık" bileşeni tanımlandı
- 4. C++ Qt std :: unique_ptr Qt sürümü nerede?
- 5. Yacc'da azaltma sırası tanımlandı mı?
- 6. Python'un bool sıralama tanımlandı mı?
- 7. ptrdiff_t, C dilinde nerede tanımlanır?
- 8. yanıt verisi tanımlandı ama data.value tanımlanmamış mı?
- 9. INET6_ADDRSTRLEN neden C olarak 46 olarak tanımlandı?
- 10. MATLAB: alan adları 'sipariş tanımlandı mı?
- 11. Oynat çerçeve - Scala, Yöntem iki defa tanımlandı
- 12. erase_if nerede?
- 13. nerede boost property_tree :: empty_ptree?
- 14. NSConcreteData nedir ve nerede tanımlanır?
- 15. std :: function ve std :: mem_fn
- 16. İşaretçi typedef neden std :: vector :: data()? std :: vektör API olarak
- 17. nerede?
- 18. nerede
- 19. Nerede
- 20. Değerlendirmeler, nerede ve nerede Haskell
- 21. std :: map karşılaştırıcısını atar mı?
- 22. VHDL numeric_std imzalı/imzasız için taşma tanımlandı mı
- 23. std :: valarray'ın geleceği nedir?
- 24. Neden ADL, std :: get
- 25. std :: string :: uzunluğu() std vs :: dize :: boyut()
- 26. std :: uninitialized_copy & std :: copy arasındaki fark nedir?
- 27. std :: vector ve std :: dk davranış
- 28. Karıştırma std :: hareket() ve std :: iplik
- 29. std :: unordered_map bir std :: çifti ile
- 30. Dönen std :: hareket (f) in std :: for_each