#ifndef SPROUT_UTILITY_VALUE_HOLDER_GET_HPP #define SPROUT_UTILITY_VALUE_HOLDER_GET_HPP #include #include #include namespace sprout { // // get // template inline SPROUT_CONSTEXPR typename sprout::value_holder::reference_type get(sprout::value_holder& x) { return sprout::value_holder::get(x); } template inline SPROUT_CONSTEXPR typename sprout::value_holder::rvalue_reference get(sprout::value_holder&& x) { return sprout::value_holder::get(sprout::move(x)); } template inline SPROUT_CONSTEXPR typename sprout::value_holder::reference_const_type get(sprout::value_holder const& x) { return sprout::value_holder::get(x); } template inline SPROUT_CONSTEXPR typename sprout::value_holder::pointer_type get(sprout::value_holder* x) { return sprout::value_holder::get_pointer(*x); } template inline SPROUT_CONSTEXPR typename sprout::value_holder::pointer_const_type get(sprout::value_holder const* x) { return sprout::value_holder::get_pointer(*x); } // // get_pointer // template inline SPROUT_CONSTEXPR typename sprout::value_holder::pointer_type get_pointer(sprout::value_holder& x) { return sprout::value_holder::get_pointer(x); } template inline SPROUT_CONSTEXPR typename sprout::value_holder::pointer_type get_pointer(sprout::value_holder&& x) { return sprout::value_holder::get_pointer(sprout::move(x)); } template inline SPROUT_CONSTEXPR typename sprout::value_holder::pointer_const_type get_pointer(sprout::value_holder const& x) { return sprout::value_holder::get_pointer(x); } } // namespace sprout #endif // #ifndef SPROUT_UTILITY_VALUE_HOLDER_GET_HPP