1
0
Fork 0
mirror of https://github.com/bolero-MURAKAMI/Sprout synced 2025-10-05 13:00:00 +00:00

add User defined literal sprout::uuids::udl::_uuid

fix sprout::uuid::string_generator
This commit is contained in:
bolero-MURAKAMI 2012-03-18 22:04:09 +09:00
commit d7fbadb62c
5 changed files with 55 additions and 4 deletions

View file

@ -168,6 +168,10 @@ namespace sprout {
;
}
public:
template<typename Iterator>
SPROUT_CONSTEXPR result_type operator()(Iterator first, Iterator last) const {
return generate_1(next_char<Iterator>(first, last));
}
template<typename Elem, std::size_t N, typename Traits>
SPROUT_CONSTEXPR result_type operator()(sprout::basic_string<Elem, N, Traits> const& s) const {
return operator()(s.begin(), s.end());
@ -184,10 +188,6 @@ namespace sprout {
SPROUT_CONSTEXPR result_type operator()(char32_t const* s) const {
return operator()(s, s + sprout::char_traits<char32_t>::length(s));
}
template<typename Iterator>
SPROUT_CONSTEXPR result_type operator()(Iterator first, Iterator last) const {
return generate_1(next_char<Iterator>(first, last));
}
};
} // namespace uuids
} // namespace sprout

40
sprout/uuid/udl.hpp Normal file
View file

@ -0,0 +1,40 @@
#ifndef SPROUT_UUID_UDL_HPP
#define SPROUT_UUID_UDL_HPP
#include <sprout/config.hpp>
#include <sprout/uuid/uuid.hpp>
#if SPROUT_USE_USER_DEFINED_LITERALS
#include <cstddef>
#include <sprout/uuid/string_generator.hpp>
namespace sprout {
namespace uuids {
namespace udl {
//
// _uuid
//
SPROUT_CONSTEXPR sprout::uuids::uuid operator "" _uuid(char const* s, std::size_t) {
return sprout::uuids::string_generator()(s);
}
SPROUT_CONSTEXPR sprout::uuids::uuid operator "" _uuid(wchar_t const* s, std::size_t) {
return sprout::uuids::string_generator()(s);
}
SPROUT_CONSTEXPR sprout::uuids::uuid operator "" _uuid(char16_t const* s, std::size_t) {
return sprout::uuids::string_generator()(s);
}
SPROUT_CONSTEXPR sprout::uuids::uuid operator "" _uuid(char32_t const* s, std::size_t) {
return sprout::uuids::string_generator()(s);
}
} // namespace uuids
using sprout::uuids::udl::operator "" _uuid;
} // namespace udl
using sprout::uuids::udl::operator "" _uuid;
} // namespace sprout
#endif // #if SPROUT_USE_USER_DEFINED_LITERALS
#endif // #ifndef SPROUT_UUID_UDL_HPP