Существует
, который даст Вам некоторое предописание для iostream классов, но в целом нет очень, можно сделать о шаблонах stl с точки зрения вперед объявления их.
Предварительно скомпилированные заголовки являются способом пойти. Вы не заметите увеличения скорости в первый раз, когда Вы компилируете их, но необходимо только заплатить ту цену однажды в течение каждого раза, когда Вы изменяете предварительно скомпилированный заголовок (или что-либо включенное в него).
Посмотрите этот вопрос для других идей об ускорении компиляции.
Вы просите увидеть всех предков класса или потомков? Для предков используйте:
Class.ancestors
Однако не существует сопоставимого метода "из коробки" для потомков. Вы можете использовать ObjectSpace, как показано ниже, но он медленный и может не переноситься между реализациями Ruby:
ObjectSpace.each_object(Class) do |klass|
p klass if klass < StandardError
end
РЕДАКТИРОВАТЬ:
Также можно использовать ловушку Class # наследуемый для отслеживания создания подклассов. Однако при этом не будут обнаружены подклассы, созданные до определения функции отслеживания, поэтому он может не соответствовать вашему варианту использования.
Example:
class Foo
end
class Bar < Foo
end
Bar.ancestors # => [Bar, Foo, Object, Kernel]