18 #ifndef TYPE_REPOSITORY_HH_ 19 #define TYPE_REPOSITORY_HH_ 47 static_assert(std::is_base_of<Type::TypeBase, T>::value,
48 "T must be a descendant of Input::Type::TypeBase" 64 boost::shared_ptr<T>
add_type(
const T & type);
79 void finish(
bool is_root_of_generic_subtree =
false);
82 TypeRepositoryMapIter
begin()
const {
87 TypeRepositoryMapIter
end()
const {
105 return search->second;
107 auto type_ptr = boost::make_shared<T>( type );
117 if (is_root_of_generic_subtree ==
it->second->is_root_of_generic_subtree()) {
118 if (is_root_of_generic_subtree) {
120 it->second->finish(
true);
122 it->second->finish();