2009-06-28 36 views

cevap

10

the documentationboost::exception'a göre std::exception numaralı ürünü devralmaz.

FAQ açıklıyor.

Ancak this page doğru Boost istisnalar nasıl kullanılacağı açıklanır.

+3

Boost.Exception depolanabilir ve yeniden throwable istisnalar için bir çerçevedir. Doğrudan herhangi bir destek kitaplığından atılmadılar. SSS http://www.boost.org/doc/libs/1_39_0/libs/exception/doc/frequently_asked_questions.html boost :: exception' 'std :: exception' devralan vermez neden' ​​açıklıyor. –

1

Öyle inanıyoruz. Std :: exception tabanlı olmayan bir şey atma bir destek kütüphanesi düşünemiyorum.

7

bir "iyi Boost vatandaş" kütüphane istisna işleme devre dışı bırakıldığı yapılandırmaları desteklemek amacıyla, boost::throw_exception kullanarak atmak gerekir.

boost::throw_exception işlevi geçirilen istisna tipi std::exception herkese açık türemiştir gerektirir (sürümü 1.37.0 itibariyle ya da bu şartı yerine getirilmediği takdirde oralarda boost::throw_exception bir derleme hatası verir.) Buna ek olarak ve varsayılan olarak, istisnalar yayılan boost::throw_exception kullanılarak, boost::exception'dan türetilmiştir. Ancak, Boost kitaplıklarının boost:throw_exception aracılığıyla istisna atması veya std::exception'dan türetme zorunluluğu yoktur.