#ifndef SPROUT_STRING_MAKE_STRING_HPP #define SPROUT_STRING_MAKE_STRING_HPP #include #include #include #include #include #include namespace sprout { // // make_string // template inline SPROUT_CONSTEXPR sprout::basic_string::type, 1 + sizeof...(Types)> make_string(T&& t, Types&&... args) { typedef sprout::detail::make_construct_impl< sprout::basic_string::type, 1 + sizeof...(Types)> > impl_type; return impl_type::make(sprout::forward(t), sprout::forward(args)...); } // // make_string_as // template inline SPROUT_CONSTEXPR sprout::basic_string::type, 0> make_string_as() { return sprout::basic_string::type, 0>{}; } template inline SPROUT_CONSTEXPR sprout::basic_string::type, sizeof...(Types)> make_string_as(Types&&... args) { typedef sprout::detail::make_construct_impl< sprout::basic_string::type, sizeof...(Types)> > impl_type; return impl_type::make(sprout::forward(args)...); } } // namespace sprout #endif // #ifndef SPROUT_STRING_MAKE_STRING_HPP