24 #include <boost/functional/hash.hpp> 37 : child_data_(
std::make_shared<
ChildData>(
"EmptyAbstract",
"" ) )
59 boost::hash_combine(seed,
"Abstract");
61 boost::hash_combine(seed,
child_data_->description_);
63 boost::hash_combine(seed, param.first );
64 boost::hash_combine(seed, param.second );
136 if (!is_generic && child.is_root_of_generic_subtree())
THROW( ExcGenericWithoutInstance() << EI_Object(child.type_name()) );
137 child.add_parent(*
this);
145 }
catch (ExcWrongDefault & e) {
146 xprintf(
PrgErr,
"Default value '%s' for TYPE key do not match any descendant of Abstract '%s'.\n",
child_data_->selection_default_.value().c_str(),
type_name().c_str());
181 if ( !
child_data_->selection_default_.is_obligatory() ) {
182 if (
child_data_->selection_default_.has_value_at_declaration() ) {
197 abstract.child_data_->closed_ =
true;
201 abstract.add_child( static_cast<Record &>( *(inst.first) ) );
203 parameter_map.insert(other_map.begin(), other_map.end());
206 abstract.child_data_->closed_ =
false;
209 abstract.parameter_map_ = parameter_map;
213 return std::make_pair( std::make_shared<Abstract>(
abstract.
close()), parameter_map );
219 abstract.child_data_ = std::make_shared<Abstract::ChildData>(*this->
child_data_);
220 abstract.child_data_->closed_ =
false;
221 abstract.child_data_->finished_ =
false;
222 abstract.child_data_->list_of_childs.clear();
223 abstract.child_data_->selection_of_childs = std::make_shared<Selection>(this->
type_name() +
"_TYPE_selection");
265 :
Abstract(
"Derived AdHocAbstract",
"This description doesn't have print out."),
310 boost::hash_combine(seed,
"AdHocAbstract");
312 boost::hash_combine(seed,
child_data_->description_);
#define FEAL_DEBUG_ASSERT(expr)
Definition of assert for debug mode only.
#define FEAL_ASSERT(expr)
Definition of assert for debug and release mode.
#define THROW(whole_exception_expr)
Wrapper for throw. Saves the throwing point.