Quando guardo i requisiti Container
su cppreference, elenca Destructible
come requisito per value_type
. Ciò sembra implicare che i distruttori degli elementi del contenitore non possano gettare.Gli elementi in un vettore std :: hanno un distruttore di lancio?
Non sono stato in grado di trovare una citazione per questo requisito nello standard C++ 14 (non ho cercato nelle versioni precedenti). L'unica cosa che posso trovare è che value_type
deve essere Erasable
che non implica alcuna eccezione di sicurezza.
Quindi la mia domanda è, possono gli elementi in un std::vector
hanno un distruttore di lancio? In caso contrario, quale sezione della norma lo proibisce?
P.S .: Non preoccuparti, non ho intenzione di creare tipi con il lancio di distruttori. Sto solo scrivendo un'implementazione conforme allo standard e sto cercando di ottenere la massima sicurezza.
La Tabella 14 nello standard C++ 11 dice la stessa cosa che il tuo cppreference dice di Destructible: "nessuna eccezione viene propagata". –
cppreference aggiornato per concordare con la Tabella 96, scusa per aver reso la tua domanda obsoleta – Cubbi
@TonyD La mia domanda non riguarda Destructible, riguarda 'std :: vector'. – orlp