mirror of
https://github.com/bolero-MURAKAMI/Sprout.git
synced 2024-12-25 21:35:41 +00:00
add convert_array, to_string_array
This commit is contained in:
parent
d8cb7a7887
commit
f8bfa6eeba
4 changed files with 56 additions and 0 deletions
|
@ -34,6 +34,15 @@ namespace sprout {
|
||||||
> type;
|
> type;
|
||||||
return type{{sprout::forward<Types>(args)...}};
|
return type{{sprout::forward<Types>(args)...}};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// convert_array
|
||||||
|
//
|
||||||
|
template<typename T, typename Converter, typename... Types>
|
||||||
|
inline SPROUT_CONSTEXPR sprout::array<T, sizeof...(Types)>
|
||||||
|
convert_array(Converter&& conv, Types&&... args) {
|
||||||
|
return sprout::make_array<T>(sprout::forward<Converter>(conv)(sprout::forward<Types>(args))...);
|
||||||
|
}
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
||||||
#endif // #ifndef SPROUT_ARRAY_MAKE_ARRAY_HPP
|
#endif // #ifndef SPROUT_ARRAY_MAKE_ARRAY_HPP
|
||||||
|
|
|
@ -5,5 +5,7 @@
|
||||||
#include <sprout/string/string.hpp>
|
#include <sprout/string/string.hpp>
|
||||||
#include <sprout/string/int_to_string.hpp>
|
#include <sprout/string/int_to_string.hpp>
|
||||||
#include <sprout/string/float_to_string.hpp>
|
#include <sprout/string/float_to_string.hpp>
|
||||||
|
#include <sprout/string/to_string_value.hpp>
|
||||||
|
#include <sprout/string/to_string_array.hpp>
|
||||||
|
|
||||||
#endif // #ifndef SPROUT_STRING_TO_STRING_HPP
|
#endif // #ifndef SPROUT_STRING_TO_STRING_HPP
|
||||||
|
|
20
sprout/string/to_string_array.hpp
Normal file
20
sprout/string/to_string_array.hpp
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
#ifndef SPROUT_STRING_TO_STRING_ARRAY_HPP
|
||||||
|
#define SPROUT_STRING_TO_STRING_ARRAY_HPP
|
||||||
|
|
||||||
|
#include <sprout/config.hpp>
|
||||||
|
#include <sprout/utility/forward.hpp>
|
||||||
|
#include <sprout/array/make_array.hpp>
|
||||||
|
#include <sprout/string/to_string_value.hpp>
|
||||||
|
|
||||||
|
namespace sprout {
|
||||||
|
//
|
||||||
|
// to_string_array
|
||||||
|
//
|
||||||
|
template<typename T, typename... Types>
|
||||||
|
inline SPROUT_CONSTEXPR sprout::array<T, sizeof...(Types)>
|
||||||
|
to_string_array(Types&&... args) {
|
||||||
|
return sprout::convert_array<T>(sprout::to_string_value(), sprout::forward<Types>(args)...);
|
||||||
|
}
|
||||||
|
} // namespace sprout
|
||||||
|
|
||||||
|
#endif // #ifndef SPROUT_STRING_TO_STRING_ARRAY_HPP
|
25
sprout/string/to_string_value.hpp
Normal file
25
sprout/string/to_string_value.hpp
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
#ifndef SPROUT_STRING_TO_STRING_VALUE_HPP
|
||||||
|
#define SPROUT_STRING_TO_STRING_VALUE_HPP
|
||||||
|
|
||||||
|
#include <utility>
|
||||||
|
#include <sprout/config.hpp>
|
||||||
|
#include <sprout/utility/forward.hpp>
|
||||||
|
#include <sprout/string/string.hpp>
|
||||||
|
|
||||||
|
namespace sprout {
|
||||||
|
//
|
||||||
|
// to_string_value
|
||||||
|
//
|
||||||
|
struct to_string_value {
|
||||||
|
public:
|
||||||
|
template<typename T>
|
||||||
|
SPROUT_CONSTEXPR decltype(sprout::to_string(std::declval<T>()))
|
||||||
|
operator()(T&& x)
|
||||||
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::to_string(std::declval<T>())))
|
||||||
|
{
|
||||||
|
return sprout::to_string(sprout::forward<T>(x));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
} // namespace sprout
|
||||||
|
|
||||||
|
#endif // #ifndef SPROUT_STRING_TO_STRING_VALUE_HPP
|
Loading…
Reference in a new issue