mirror of
https://github.com/bolero-MURAKAMI/Sprout.git
synced 2024-11-14 10:39:05 +00:00
add User defined literal sprout::uuids::udl::_uuid
fix sprout::uuid::string_generator
This commit is contained in:
parent
dacf1f40ac
commit
d7fbadb62c
5 changed files with 55 additions and 4 deletions
|
@ -39,6 +39,10 @@
|
|||
# endif // #ifdef BOOST_NO_TEMPLATE_ALIASES
|
||||
#endif // #ifndef SPROUT_CONFIG_DISABLE_TEMPLATE_ALIASES
|
||||
|
||||
//
|
||||
// SPROUT_USE_USER_DEFINED_LITERALS
|
||||
//
|
||||
|
||||
//
|
||||
// SPROUT_CONFIG_USE_SSCRISK_CEL
|
||||
//
|
||||
|
|
|
@ -23,6 +23,12 @@
|
|||
# define SPROUT_USE_TEMPLATE_ALIASES 0
|
||||
#endif // #ifndef SPROUT_CONFIG_DISABLE_TEMPLATE_ALIASES
|
||||
|
||||
#ifndef SPROUT_CONFIG_DISABLE_USER_DEFINED_LITERALS
|
||||
# define SPROUT_USE_USER_DEFINED_LITERALS 1
|
||||
#else // #ifndef SPROUT_CONFIG_DISABLE_USER_DEFINED_LITERALS
|
||||
# define SPROUT_USE_USER_DEFINED_LITERALS 0
|
||||
#endif // #ifndef SPROUT_CONFIG_DISABLE_USER_DEFINED_LITERALS
|
||||
|
||||
#ifndef SPROUT_CONFIG_USE_SSCRISK_CEL
|
||||
# define HDR_FUNCTIONAL_SSCRISK_CEL_OR_SPROUT_DETAIL <sprout/detail/functional.hpp>
|
||||
# define HDR_ALGORITHM_SSCRISK_CEL_OR_SPROUT_DETAIL <sprout/detail/algorithm.hpp>
|
||||
|
|
|
@ -6,5 +6,6 @@
|
|||
#include <sprout/uuid/uuid_io.hpp>
|
||||
#include <sprout/uuid/uuid_hash.hpp>
|
||||
#include <sprout/uuid/uuid_generators.hpp>
|
||||
#include <sprout/uuid/udl.hpp>
|
||||
|
||||
#endif // #ifndef SPROUT_UUID_HPP
|
||||
|
|
|
@ -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
40
sprout/uuid/udl.hpp
Normal 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
|
Loading…
Reference in a new issue