18 #ifndef ACCESSORS_IMPL_HH_ 19 #define ACCESSORS_IMPL_HH_ 34 ASSERT_DBG(key_it->default_.is_obligatory() || key_it->default_.has_value_at_declaration())(key)
35 .error(
"You have to use Record::find instead.");
41 catch (Type::Record::ExcRecordKeyNotFound & e) {
44 catch (ExcTypeMismatch & e) {
45 e << EI_CPPRequiredType(
typeid(Ret).name()) << EI_KeyName(key);
48 catch (ExcStorageTypeMismatch &e) {
51 catch (ExcAccessorForNullStorage &e) {
59 inline const Ret
Record::val(
const string &key,
const Ret default_val )
const {
63 ASSERT_DBG(key_it->default_.has_value_at_read_time())(key).error(
"You have to use Record::val or Record::find instead.");
72 catch (Type::Record::ExcRecordKeyNotFound & e) {
75 catch (ExcTypeMismatch & e) {
76 e << EI_CPPRequiredType(
typeid(Ret).name()) << EI_KeyName(key);
79 catch (ExcStorageTypeMismatch &e) {
82 catch (ExcAccessorForNullStorage &e) {
96 catch (Type::Record::ExcRecordKeyNotFound & e) {
99 catch (ExcTypeMismatch & e) {
100 e << EI_CPPRequiredType(
typeid(Ret).name()) << EI_KeyName(key);
117 catch (Type::Record::ExcRecordKeyNotFound & e) {
120 catch (ExcTypeMismatch & e) {
121 e << EI_CPPRequiredType(
typeid(Ret).name()) << EI_KeyName(key);
133 template<
class Type,
class... Arguments>
143 template <
class ValueType>
148 catch (ExcTypeMismatch & e) {
149 e << EI_CPPRequiredType(
typeid(ValueType).name()) << EI_KeyName(
"begin()");
168 template <
class Container>
173 for(;it != end(); ++ it) {
189 {
return ! ( *
this == that ); }
193 inline IteratorBase::operator bool()
const {
195 return ( s && ! s->
is_null() );
231 ASSERT_PTR(new_address->storage_head()).error();
240 (boost::is_same < Record, OutputType > ::value || boost::is_same < AbstractRecord, OutputType > ::value
241 || boost::is_same < Array, OutputType > ::value || boost::is_same < Tuple, OutputType > ::value));
245 return &(temporary_value_);
253 return static_cast<const InputType &
>(type);
UnitSI operator*(const UnitSI &a, const UnitSI &b)
Product of two units.
#define ASSERT_PTR(ptr)
Definition of assert macro checking non-null pointer (PTR)
#define THROW(whole_exception_expr)
Wrapper for throw. Saves the throwing point.