std::codecvt<InternT,ExternT,StateT>::~codecvt
From cppreference.com
| ヘッダー <locale> で定義 |
||
| protected: ~codecvt(); |
||
std::codecvt facet を破棄します。このデストラクタは protected かつ virtual です(基底クラスのデストラクタが virtual であるため)。std::codecvt 型のオブジェクトは、ほとんどの facet と同様に、この facet を実装している最後の std::locale オブジェクトがスコープを外れるか、または std::codecvt から派生したユーザー定義クラスが public なデストラクタを実装している場合にのみ破棄できます。
[編集] 例
このコードを実行
#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) {} // note: the implicit destructor is public }; int main() { Destructible_codecvt dc; // std::codecvt<wchar_t> c; // compile error: protected destructor }