support polymorphic visitor (variant)

This commit is contained in:
bolero-MURAKAMI 2012-12-19 23:06:08 +09:00
parent 9ee3e03ddd
commit f01382e3e5
8 changed files with 204 additions and 24 deletions

25
sprout/string/stretch.hpp Normal file
View file

@ -0,0 +1,25 @@
#ifndef SPROUT_STRING_STRETCH_HPP
#define SPROUT_STRING_STRETCH_HPP
#include <cstddef>
#include <sprout/config.hpp>
#include <sprout/string/string.hpp>
namespace sprout {
//
// stretch
//
template<std::size_t To, typename T, std::size_t N, typename Traits>
inline SPROUT_CONSTEXPR sprout::basic_string<T, To, Traits>
stretch(sprout::basic_string<T, N, Traits> const& s) {
return s;
}
template<std::size_t To, typename T, std::size_t N>
inline SPROUT_CONSTEXPR sprout::basic_string<T, To>
stretch(T const(& arr)[N]) {
return sprout::stretch<To>(sprout::to_string(arr));
}
} // namespace sprout
#endif // #ifndef SPROUT_STRING_STRETCH_HPP