#ifndef SPROUT_STRING_TUPLE_HPP #define SPROUT_STRING_TUPLE_HPP #include #include #include #include #include #include namespace sprout_adl { // // tuple_get // template inline SPROUT_CONSTEXPR T& tuple_get(sprout::basic_string& t) SPROUT_NOEXCEPT { static_assert(I < N, "tuple_get: index out of range"); return t[I]; } template inline SPROUT_CONSTEXPR T const& tuple_get(sprout::basic_string const& t) SPROUT_NOEXCEPT { static_assert(I < N, "tuple_get: index out of range"); return t[I]; } template inline SPROUT_CONSTEXPR T&& tuple_get(sprout::basic_string&& t) SPROUT_NOEXCEPT { return sprout::move(sprout::tuples::get(t)); } } // namespace sprout_adl namespace std { // // tuple_size // template struct tuple_size > : public std::integral_constant {}; // // tuple_element // template struct tuple_element > { public: static_assert(I < N, "tuple_element<>: index out of range"); typedef T type; }; } // namespace std #endif // #ifndef SPROUT_STRING_TUPLE_HPP