25 #include "metavalue.hpp" 26 #include "exception.hpp" 30 MetaValue::MetaValue(
const MetaValue & r)
31 : m_values(r.m_values)
35 MetaValue::MetaValue(
const value_t &v)
37 m_values.push_back(v);
40 MetaValue::MetaValue(
const std::vector<value_t> &v)
47 inline T MetaValue::get(
int idx)
const noexcept(
false)
49 assert(!m_values.empty());
51 return boost::get<T>(m_values[idx]);
54 throw Internals::BadTypeException();
59 inline const T & MetaValue::getRef(
int idx)
const noexcept(
false)
62 assert(!m_values.empty());
64 return boost::get<T>(m_values[idx]);
67 throw Internals::BadTypeException();
73 uint32_t MetaValue::getInteger(
int idx)
const 75 return get<uint32_t>(idx);
78 const std::string & MetaValue::getString(
int idx)
const 80 return getRef<std::string>(idx);
83 double MetaValue::getDouble(
int idx)
const 85 return get<double>(idx);
CIFF is the container for CRW files. It is an attempt from Canon to make this a standard. I guess it failed.