typename std::enable_if<not util::is_primitive<T>::value>::type serialze_single(serializer* sink, const Tuple& tup, const T& value) { tup.type_at(Pos)->serialize(&value, sink); }
typename std::enable_if<not util::is_primitive<T>::value>::type deserialze_single(deserializer* source, Tuple& tup, T& value) { tup.type_at(Pos)->deserialize(&value, source); }
inline const uniform_type_info* type() const { return m_tuple->type_at(m_pos); }