Общеизвестно, что стандартная библиотека С++ обычно не предназначена для расширения с использованием наследования. Конечно, я (и другие) критиковал людей, которые предполагают получение таких классов, как std::vector
. Однако этот вопрос: исключения С++, может ли() быть NULL? заставило меня понять, что есть хотя бы одна часть стандартной библиотеки, которая должна быть настолько расширенной - std::exception
.
Итак, мой вопрос состоит из двух частей:
-
Существуют ли какие-либо другие классы стандартной библиотеки, которые должны быть получены из?
-
Если кто-либо из класса стандартной библиотеки, такого как
std::exception
, связан с интерфейсом, описанным в стандарте ISO? Например, будет ли стандартная конфигурация программой, использующей класс исключений, кто не имеет функции-членаwhat()
, не возвращает NTBS (скажем, вернул нулевой указатель)?