this講義では、スピーカーは標準ライブラリに純粋な仮想関数がない(または何も認識していない)ことを冒頭で述べています。私はAlex Stepanovがこの言語機能に反対していたと考えていますが、最初のSTLデザイン以来、純粋なバーチャルを標準ライブラリに忍び込ませていますか?C++標準ライブラリに純粋仮想関数がありますか?
FWIW(私が間違っていると私を修正します)ユニークなポインタの中の削除者は最終的にほとんどの実装で仮想ディスパッチを使用しますが、これらは純粋な仮想ではありません。
this講義では、スピーカーは標準ライブラリに純粋な仮想関数がない(または何も認識していない)ことを冒頭で述べています。私はAlex Stepanovがこの言語機能に反対していたと考えていますが、最初のSTLデザイン以来、純粋なバーチャルを標準ライブラリに忍び込ませていますか?C++標準ライブラリに純粋仮想関数がありますか?
FWIW(私が間違っていると私を修正します)ユニークなポインタの中の削除者は最終的にほとんどの実装で仮想ディスパッチを使用しますが、これらは純粋な仮想ではありません。
は[syserr.errcat.overview] C++ 14には他のものはありませんstd::error_category
class error_category {
virtual const char* name() const noexcept = 0;
virtual string message(int ev) const = 0;
};
有します。
標準ライブラリ全体か、単に 'STL'(イテレータ、アルゴリズム、コンテナ)部分だけを意味しますか? – Galik
私は、標準ライブラリの純粋仮想関数を認識していません。 'unique_ptr'のデフォルトのdeleterは非常に非仮想的なので、非多型の基底クラスにキャストすると安全ではありません。一方、 'shared_ptr'は元のポインタで型消去されたdeleter関数を保持していますので、そのように安全です。 –
純粋仮想関数を持つクラスはインスタンス化できません。私は、基底クラスとして使用されるだけで、直接使用できない標準クラスは認識していません。 –