1 #ifndef MSP_DATAFILE_VALUE_H_
2 #define MSP_DATAFILE_VALUE_H_
5 #include <msp/core/attributes.h>
6 #include <msp/core/meta.h>
7 #include <msp/core/variant.h>
22 sig(TypeInfo<T>::signature),
23 data(static_cast<typename TypeInfo<T>::Store>(d))
26 Value(Symbol d): sig(TypeInfo<Symbol>::signature), data(d) { }
29 typename TypeInfo<T>::Load get() const
30 { return get_<typename TypeInfo<T>::Store>(); }
32 char get_signature() const { return sig; }
39 inline T Value::get_() const
41 return data.value<typename TypeInfo<T>::Store>();
45 inline FloatType::Store Value::get_<FloatType::Store>() const
47 if(sig==IntType::signature)
48 return data.value<IntType::Store>();
50 return data.value<FloatType::Store>();
53 } // namespace DataFile