Namespaces
Variants

std::codecvt<InternT,ExternT,StateT>:: ~codecvt

From cppreference.net
Definido en el encabezado <locale>
protected : ~codecvt ( ) ;

Destruye un facet std:: codecvt . Este destructor es protegido y virtual (debido a que el destructor de la clase base es virtual). Un objeto de tipo std:: codecvt , como la mayoría de los facets, solo puede ser destruido cuando el último objeto std::locale que implementa este facet sale del ámbito o si una clase definida por el usuario deriva de std:: codecvt e implementa un destructor público.

Ejemplo

#include <iostream>
#include <locale>
struct Destructible_codecvt : public std::codecvt<wchar_t, char, std::mbstate_t>
{
    Destructible_codecvt(std::size_t refs = 0) : codecvt(refs) {}
    // nota: el destructor implícito es público
};
int main()
{
    Destructible_codecvt dc;
    // std::codecvt<wchar_t> c; // error de compilación: destructor protegido
}