C++ 11 (ve C++ 14) STL kapsayıcıları noexcept
destructor ve clear()
üye işlevlerine sahiptir.STL konteyner öğeleri açıkça (noexcept) olarak imha edilebilir mi?
Bu, öğelerin noexcept
destructor'larının da olması gerektiğini veya en azından, kapsayıcılarda depolanan asıl öğelerin imha edildiğinde veya herhangi bir şekilde karşılık gelen allocator_traits<Allocator>::destroy
çağrısının atmaması gerektiğinde herhangi bir özel durum oluşturmaması gerektiğini belirtir.
Bu, standartta herhangi bir yerde (başka bir açık gereksinim tarafından açıkça veya ima edilen) bir gereksinim olarak belirtiliyor mu? Değilse neden?
Biliyorum is_nothrow_constructible
, noexcept
bir yok edici gerektirir, ancak is_constructible
tek başına yapmaz ve kapsayıcı gereksinimleri, tür özellikleri şablonlarından ziyade, kavramlar açısından belirtilir.
konteyner yıkıcı yakalayıp elementin destructor (ler) den herhangi istisnaları göz ardı başladı. –