#ifndef SPROUT_UUID_UUID_TUPLE_HPP #define SPROUT_UUID_UUID_TUPLE_HPP #include #include #include #include #include #include namespace sprout { namespace tuples { // // get // template inline SPROUT_CONSTEXPR sprout::uuids::uuid::value_type& get(sprout::uuids::uuid& t) SPROUT_NOEXCEPT { static_assert(I < 16, "get: index out of range"); return t[I]; } template inline SPROUT_CONSTEXPR sprout::uuids::uuid::value_type const& get(sprout::uuids::uuid const& t) SPROUT_NOEXCEPT { static_assert(I < 16, "get: index out of range"); return t[I]; } template inline SPROUT_CONSTEXPR sprout::uuids::uuid::value_type&& get(sprout::uuids::uuid&& t) SPROUT_NOEXCEPT { return sprout::move(sprout::tuples::get(t)); } } // namespace tuples using sprout::tuples::get; } // namespace sprout namespace std { // // tuple_size // template<> struct tuple_size { public: typedef std::integral_constant type; SPROUT_STATIC_CONSTEXPR std::size_t value = type::value; }; // // tuple_element // template struct tuple_element { public: static_assert(I < 16, "tuple_element<>: index out of range"); typedef sprout::uuids::uuid::value_type type; }; } // namespace std #endif // #ifndef SPROUT_UUID_UUID_TUPLE_HPP