add conversion string_ref to arithmetic-type

This commit is contained in:
bolero-MURAKAMI 2013-02-19 10:51:12 +09:00
parent 1ef8a6a63b
commit 2e0bc89188
10 changed files with 424 additions and 8 deletions

View file

@ -82,11 +82,11 @@ namespace sprout {
{}
template<std::size_t N>
SPROUT_CONSTEXPR basic_string_ref(sprout::basic_string<T, N, Traits> const& str)
: ptr_(str.data()), len_(str.length())
: ptr_(str.data()), len_(str.size())
{}
template<typename Allocator>
SPROUT_CONSTEXPR basic_string_ref(std::basic_string<T, Traits, Allocator> const& str)
: ptr_(str.data()), len_(str.length())
: ptr_(str.data()), len_(str.size())
{}
SPROUT_CONSTEXPR basic_string_ref(const_pointer str, size_type len)
: ptr_(str), len_(len)
@ -550,6 +550,30 @@ namespace sprout {
{
lhs.swap(rhs);
}
//
// to_string_ref
//
template<typename T, std::size_t N, typename Traits>
inline SPROUT_CONSTEXPR sprout::basic_string_ref<T, Traits>
to_string_ref(sprout::basic_string<T, N, Traits> const& s) {
return sprout::basic_string_ref<T, Traits>(s);
}
template<typename T, typename Traits>
inline SPROUT_CONSTEXPR sprout::basic_string_ref<T, Traits>
to_string_ref(std::basic_string<T, Traits> const& s) {
return sprout::basic_string_ref<T, Traits>(s);
}
template<typename T>
inline SPROUT_CONSTEXPR sprout::basic_string_ref<T>
to_string_ref(T const* str) {
return sprout::basic_string_ref<T>(str);
}
template<typename T>
inline SPROUT_CONSTEXPR sprout::basic_string_ref<T>
to_string_ref(T const* str, std::size_t len) {
return sprout::basic_string_ref<T>(str, len);
}
} // namespace sprout
#endif // #ifndef SPROUT_UTILITY_STRING_REF_STRING_REF_HPP