00001 #ifndef CCTBX_TAGGED_VALUE_H
00002 #define CCTBX_TAGGED_VALUE_H
00003
00004 namespace cctbx {
00005
00006 template <typename ValueType, typename TagType = bool>
00007 struct tagged_value
00008 {
00009 typedef ValueType value_type;
00010 typedef TagType tag_type;
00011
00012 tagged_value() {}
00013
00014 tagged_value(ValueType const& v)
00015 : value(v)
00016 {}
00017
00018 tagged_value(ValueType const& v, TagType const& t)
00019 : value(v), tag(t)
00020 {}
00021
00022 ValueType value;
00023 TagType tag;
00024 };
00025
00026 }
00027
00028 #endif // CCTBX_TAGGED_VALUE_H