mirror of
https://github.com/bolero-MURAKAMI/Sprout.git
synced 2025-01-23 20:46:37 +00:00
workaround for disable unicode literals and types
This commit is contained in:
parent
4e0b3991b1
commit
7240e883c5
26 changed files with 152 additions and 29 deletions
|
@ -8,6 +8,10 @@
|
|||
#ifndef SPROUT_CONFIG_CONFIG_HPP
|
||||
#define SPROUT_CONFIG_CONFIG_HPP
|
||||
|
||||
#ifndef SPROUT_CONFIG_DISABLE_USER_CONFIG
|
||||
# include <sprout/config/user_config.hpp>
|
||||
#endif // #ifndef SPROUT_CONFIG_DISABLE_USER_CONFIG
|
||||
|
||||
#ifndef SPROUT_CONFIG_DISABLE_AUTO_CONFIG
|
||||
# include <sprout/config/auto_config.hpp>
|
||||
#endif // #ifndef SPROUT_CONFIG_DISABLE_AUTO_CONFIG
|
||||
|
|
|
@ -5,12 +5,13 @@
|
|||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
=============================================================================*/
|
||||
#ifndef SPROUT_CONFIG_USER_HPP
|
||||
#define SPROUT_CONFIG_USER_HPP
|
||||
#ifndef SPROUT_CONFIG_USER_CONFIG_HPP
|
||||
#define SPROUT_CONFIG_USER_CONFIG_HPP
|
||||
|
||||
//
|
||||
// 言語機能を無効化するコンフィグ
|
||||
// ユーザ定義されない場合、処理系に応じて自動的に定義される。
|
||||
// Configuration to disable the language features
|
||||
//
|
||||
// If the user does not define, automatically defined according to the compiler.
|
||||
//
|
||||
//#define SPROUT_CONFIG_DISABLE_CONSTEXPR
|
||||
//#define SPROUT_CONFIG_DISABLE_CXX14_CONSTEXPR
|
||||
|
@ -25,9 +26,10 @@
|
|||
//#define SPROUT_CONFIG_DISABLE_VARIABLE_TEMPLATES
|
||||
|
||||
//
|
||||
// 言語機能を強制的に有効化するコンフィグ
|
||||
// SPROUT_CONFIG_DISABLE_*** の自動定義を抑制する。
|
||||
// SPROUT_CONFIG_DISABLE_*** がユーザ定義されている場合、無効化のほうが優先される。
|
||||
// Configuration to forcibly enable the language features
|
||||
//
|
||||
// Suppress the automatic definition: SPROUT_CONFIG_DISABLE_***
|
||||
// If a user definition is, invalidation is priority. (SPROUT_CONFIG_DISABLE_***)
|
||||
//
|
||||
//#define SPROUT_CONFIG_FORCE_CONSTEXPR
|
||||
//#define SPROUT_CONFIG_FORCE_CXX14_CONSTEXPR
|
||||
|
@ -42,23 +44,27 @@
|
|||
//#define SPROUT_CONFIG_FORCE_VARIABLE_TEMPLATES
|
||||
|
||||
//
|
||||
// 実装に外部ライブラリを使用するコンフィグ
|
||||
// Configuration you want to use an external library to implementation
|
||||
//
|
||||
//#define SPROUT_CONFIG_USE_SSCRISK_CEL
|
||||
|
||||
//
|
||||
// 処理系機能を無効化するコンフィグ
|
||||
// ユーザ定義されない場合、処理系に応じて自動的に定義される。
|
||||
// Configuration to disable the function of the compiler
|
||||
//
|
||||
// If the user does not define, automatically defined according to the compiler.
|
||||
//
|
||||
//#define SPROUT_CONFIG_DISABLE_BUILTIN_CMATH_FUNCTION
|
||||
//#define SPROUT_CONFIG_DISABLE_BUILTIN_COPYSIGN_FUNCTION
|
||||
//#define SPROUT_CONFIG_DISABLE_BUILTIN_BIT_OPERATION
|
||||
|
||||
//
|
||||
// 実装の詳細を切り替えるコンフィグ
|
||||
// Configuration to switch the implementation details
|
||||
//
|
||||
//#define SPROUT_CONFIG_DISABLE_LARGE_FLOAT_ROUNDING
|
||||
//#define SPROUT_CONFIG_DISABLE_SUPPORT_TEMPORARY_CONTAINER_ITERATION
|
||||
//#define SPROUT_CONFIG_DISABLE_SUPPORT_EFFICIENT_ARRAY_ITERATION
|
||||
|
||||
#endif // #ifndef SPROUT_CONFIG_USER_HPP
|
||||
//#define SPROUT_CONFIG_DISABLE_USER_CONFIG
|
||||
//#define SPROUT_CONFIG_DISABLE_AUTO_CONFIG
|
||||
|
||||
#endif // #ifndef SPROUT_CONFIG_USER_CONFIG_HPP
|
|
@ -175,6 +175,7 @@ namespace sprout {
|
|||
: 0
|
||||
;
|
||||
}
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
inline SPROUT_CONSTEXPR std::size_t get_value(char16_t c) {
|
||||
return static_cast<std::size_t>(c) < sprout::ascii::detail::table_size
|
||||
? sprout::ascii::detail::table[static_cast<std::size_t>(c)]
|
||||
|
@ -187,6 +188,7 @@ namespace sprout {
|
|||
: 0
|
||||
;
|
||||
}
|
||||
#endif
|
||||
} // namespace detail
|
||||
|
||||
#define SPROUT_CTYPE_ASCII_DECL(CHAR_TYPE, PREFIX) \
|
||||
|
@ -282,8 +284,10 @@ namespace sprout {
|
|||
//
|
||||
SPROUT_CTYPE_ASCII_DECL(char, SPROUT_PP_EMPTY())
|
||||
SPROUT_CTYPE_ASCII_DECL(wchar_t, SPROUT_PP_EMPTY())
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
SPROUT_CTYPE_ASCII_DECL(char16_t, SPROUT_PP_EMPTY())
|
||||
SPROUT_CTYPE_ASCII_DECL(char32_t, SPROUT_PP_EMPTY())
|
||||
#endif
|
||||
} // namespace ascii
|
||||
|
||||
using sprout::ascii::isalnum;
|
||||
|
|
|
@ -81,7 +81,8 @@ namespace sprout {
|
|||
struct exact_signed_base_helper<sizeof(short) * CHAR_BIT> {
|
||||
typedef short exact;
|
||||
};
|
||||
template<> struct exact_unsigned_base_helper<sizeof(unsigned short) * CHAR_BIT> {
|
||||
template<>
|
||||
struct exact_unsigned_base_helper<sizeof(unsigned short) * CHAR_BIT> {
|
||||
typedef unsigned short exact;
|
||||
};
|
||||
#endif
|
||||
|
|
|
@ -35,38 +35,52 @@ namespace sprout {
|
|||
|
||||
typedef sprout::detail::io::basic_ios_iostate_saver<char> ios_iostate_saver;
|
||||
typedef sprout::detail::io::basic_ios_iostate_saver<wchar_t> wios_iostate_saver;
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
typedef sprout::detail::io::basic_ios_iostate_saver<char16_t> u16ios_iostate_saver;
|
||||
typedef sprout::detail::io::basic_ios_iostate_saver<char32_t> u32ios_iostate_saver;
|
||||
#endif
|
||||
|
||||
typedef sprout::detail::io::basic_ios_exception_saver<char> ios_exception_saver;
|
||||
typedef sprout::detail::io::basic_ios_exception_saver<wchar_t> wios_exception_saver;
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
typedef sprout::detail::io::basic_ios_exception_saver<char16_t> u16ios_exception_saver;
|
||||
typedef sprout::detail::io::basic_ios_exception_saver<char32_t> u32ios_exception_saver;
|
||||
#endif
|
||||
|
||||
typedef sprout::detail::io::basic_ios_tie_saver<char> ios_tie_saver;
|
||||
typedef sprout::detail::io::basic_ios_tie_saver<wchar_t> wios_tie_saver;
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
typedef sprout::detail::io::basic_ios_tie_saver<char16_t> u16ios_tie_saver;
|
||||
typedef sprout::detail::io::basic_ios_tie_saver<char32_t> u32ios_tie_saver;
|
||||
#endif
|
||||
|
||||
typedef sprout::detail::io::basic_ios_rdbuf_saver<char> ios_rdbuf_saver;
|
||||
typedef sprout::detail::io::basic_ios_rdbuf_saver<wchar_t> wios_rdbuf_saver;
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
typedef sprout::detail::io::basic_ios_rdbuf_saver<char16_t> u16ios_rdbuf_saver;
|
||||
typedef sprout::detail::io::basic_ios_rdbuf_saver<char32_t> u32ios_rdbuf_saver;
|
||||
#endif
|
||||
|
||||
typedef sprout::detail::io::basic_ios_fill_saver<char> ios_fill_saver;
|
||||
typedef sprout::detail::io::basic_ios_fill_saver<wchar_t> wios_fill_saver;
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
typedef sprout::detail::io::basic_ios_fill_saver<char16_t> u16ios_fill_saver;
|
||||
typedef sprout::detail::io::basic_ios_fill_saver<char32_t> u32ios_fill_saver;
|
||||
#endif
|
||||
|
||||
typedef sprout::detail::io::basic_ios_locale_saver<char> ios_locale_saver;
|
||||
typedef sprout::detail::io::basic_ios_locale_saver<wchar_t> wios_locale_saver;
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
typedef sprout::detail::io::basic_ios_locale_saver<char16_t> u16ios_locale_saver;
|
||||
typedef sprout::detail::io::basic_ios_locale_saver<char32_t> u32ios_locale_saver;
|
||||
#endif
|
||||
|
||||
typedef sprout::detail::io::basic_ios_all_saver<char> ios_all_saver;
|
||||
typedef sprout::detail::io::basic_ios_all_saver<wchar_t> wios_all_saver;
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
typedef sprout::detail::io::basic_ios_all_saver<char16_t> u16ios_all_saver;
|
||||
typedef sprout::detail::io::basic_ios_all_saver<char32_t> u32ios_all_saver;
|
||||
#endif
|
||||
|
||||
class ios_iword_saver;
|
||||
class ios_pword_saver;
|
||||
|
|
|
@ -81,8 +81,10 @@ namespace sprout {
|
|||
SPROUT_HASH_SPECIALIZE(char);
|
||||
SPROUT_HASH_SPECIALIZE(signed char);
|
||||
SPROUT_HASH_SPECIALIZE(unsigned char);
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
SPROUT_HASH_SPECIALIZE(char16_t);
|
||||
SPROUT_HASH_SPECIALIZE(char32_t);
|
||||
#endif
|
||||
SPROUT_HASH_SPECIALIZE(wchar_t);
|
||||
SPROUT_HASH_SPECIALIZE(short);
|
||||
SPROUT_HASH_SPECIALIZE(unsigned short);
|
||||
|
|
|
@ -201,6 +201,7 @@ namespace sprout {
|
|||
|
||||
SPROUT_NUMERIC_LIMITS_INTEGRAL_SPECIALIZED_DECL(signed char, SCHAR_MIN, SCHAR_MAX);
|
||||
SPROUT_NUMERIC_LIMITS_INTEGRAL_SPECIALIZED_DECL(unsigned char, static_cast<unsigned char>(0), UCHAR_MAX);
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
SPROUT_NUMERIC_LIMITS_INTEGRAL_SPECIALIZED_DECL(
|
||||
char16_t,
|
||||
static_cast<char16_t>(sprout::numeric_limits<std::uint_least16_t>::min()),
|
||||
|
@ -211,6 +212,7 @@ namespace sprout {
|
|||
static_cast<char16_t>(sprout::numeric_limits<std::uint_least32_t>::min()),
|
||||
static_cast<char16_t>(sprout::numeric_limits<std::uint_least32_t>::max())
|
||||
);
|
||||
#endif
|
||||
SPROUT_NUMERIC_LIMITS_INTEGRAL_SPECIALIZED_DECL(wchar_t, WCHAR_MIN, WCHAR_MAX);
|
||||
#undef SPROUT_NUMERIC_LIMITS_INTEGRAL_SPECIALIZED_DECL
|
||||
|
||||
|
|
|
@ -26,10 +26,12 @@ namespace sprout {
|
|||
using string = sprout::basic_string<char, N>;
|
||||
template<std::size_t N>
|
||||
using wstring = sprout::basic_string<wchar_t, N>;
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
template<std::size_t N>
|
||||
using u16string = sprout::basic_string<char16_t, N>;
|
||||
template<std::size_t N>
|
||||
using u32string = sprout::basic_string<char32_t, N>;
|
||||
#endif
|
||||
#endif // #if SPROUT_USE_TEMPLATE_ALIASES
|
||||
} // namespace sprout
|
||||
|
||||
|
|
|
@ -218,6 +218,7 @@ namespace sprout {
|
|||
return sprout::to_string_of<wchar_t>(val);
|
||||
}
|
||||
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
//
|
||||
// to_u16string
|
||||
//
|
||||
|
@ -235,6 +236,7 @@ namespace sprout {
|
|||
to_u32string(FloatType val) {
|
||||
return sprout::to_string_of<char32_t>(val);
|
||||
}
|
||||
#endif
|
||||
} // namespace sprout
|
||||
|
||||
#endif // #ifndef SPROUT_STRING_FLOAT_TO_STRING_HPP
|
||||
|
|
|
@ -121,6 +121,7 @@ namespace sprout {
|
|||
return sprout::to_string_of<wchar_t>(val);
|
||||
}
|
||||
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
//
|
||||
// to_u16string
|
||||
//
|
||||
|
@ -138,6 +139,7 @@ namespace sprout {
|
|||
to_u32string(IntType val) {
|
||||
return sprout::to_string_of<char32_t>(val);
|
||||
}
|
||||
#endif
|
||||
} // namespace sprout
|
||||
|
||||
#endif // #ifndef SPROUT_STRING_INT_TO_STRING_HPP
|
||||
|
|
|
@ -30,6 +30,7 @@ namespace sprout {
|
|||
public:
|
||||
typedef sprout::basic_string<wchar_t, N> type;
|
||||
};
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
//
|
||||
// u16string_t
|
||||
//
|
||||
|
@ -46,6 +47,7 @@ namespace sprout {
|
|||
public:
|
||||
typedef sprout::basic_string<char32_t, N> type;
|
||||
};
|
||||
#endif
|
||||
|
||||
//
|
||||
// is_basic_string
|
||||
|
@ -101,6 +103,7 @@ namespace sprout {
|
|||
struct is_wstring
|
||||
: public sprout::is_string_of<T, wchar_t>
|
||||
{};
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
//
|
||||
// is_u16string
|
||||
//
|
||||
|
@ -115,6 +118,7 @@ namespace sprout {
|
|||
struct is_u32string
|
||||
: public sprout::is_string_of<T, char32_t>
|
||||
{};
|
||||
#endif
|
||||
|
||||
#if SPROUT_USE_VARIABLE_TEMPLATES
|
||||
template<typename T>
|
||||
|
@ -125,10 +129,12 @@ namespace sprout {
|
|||
SPROUT_STATIC_CONSTEXPR bool is_string_v = sprout::is_string<T>::value;
|
||||
template<typename T>
|
||||
SPROUT_STATIC_CONSTEXPR bool is_wstring_v = sprout::is_wstring<T>::value;
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
template<typename T>
|
||||
SPROUT_STATIC_CONSTEXPR bool is_u16string_v = sprout::is_u16string<T>::value;
|
||||
template<typename T>
|
||||
SPROUT_STATIC_CONSTEXPR bool is_u32string_v = sprout::is_u32string<T>::value;
|
||||
#endif
|
||||
#endif // #if SPROUT_USE_VARIABLE_TEMPLATES
|
||||
} // namespace sprout
|
||||
|
||||
|
|
|
@ -80,12 +80,15 @@ namespace sprout {
|
|||
struct joint_types_default_apply<TupleClass<Ts...>, IntSeqClass<Values...> > \
|
||||
: public sprout::identity<TupleClass<Ts..., sprout::integral_constant<TYPE, Values>...> > \
|
||||
{}
|
||||
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_TUPLE_LIKE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(bool);
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_TUPLE_LIKE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(char);
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_TUPLE_LIKE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(signed char);
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_TUPLE_LIKE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(unsigned char);
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_TUPLE_LIKE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(char16_t);
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_TUPLE_LIKE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(char32_t);
|
||||
#endif
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_TUPLE_LIKE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(wchar_t);
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_TUPLE_LIKE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(short);
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_TUPLE_LIKE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(unsigned short);
|
||||
|
@ -96,6 +99,7 @@ namespace sprout {
|
|||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_TUPLE_LIKE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(long long);
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_TUPLE_LIKE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(unsigned long long);
|
||||
#undef SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_TUPLE_LIKE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE
|
||||
|
||||
template<template<typename...> class TupleClass, typename... Ts>
|
||||
struct joint_types_default<TupleClass<Ts...> > {
|
||||
public:
|
||||
|
@ -167,6 +171,39 @@ namespace sprout {
|
|||
struct joint_types_default_apply<IntegerSequenceClass<Vs...>, IntSeqClass<Values...> > \
|
||||
: public sprout::identity<IntegerSequenceClass<Vs..., Values...> > \
|
||||
{}
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
#define SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_(BASE) \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, bool); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, char); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, signed char); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, unsigned char); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, char16_t); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, char32_t); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, wchar_t); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, short); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, unsigned short); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, int); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, unsigned int); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, long); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, unsigned long); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, long long); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, unsigned long long)
|
||||
#else
|
||||
#define SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_(BASE) \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, bool); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, char); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, signed char); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, unsigned char); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, wchar_t); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, short); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, unsigned short); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, int); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, unsigned int); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, long); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, unsigned long); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, long long); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, unsigned long long)
|
||||
#endif
|
||||
#define SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL(BASE) \
|
||||
template< \
|
||||
template<BASE...> class IntegerSequenceClass, BASE... Vs, \
|
||||
|
@ -189,21 +226,7 @@ namespace sprout {
|
|||
struct joint_types_default_apply<IntegerSequenceClass<Vs...>, IntSeqClass<Type, Values...> > \
|
||||
: public sprout::identity<IntegerSequenceClass<Vs..., Values...> > \
|
||||
{}; \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, bool); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, char); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, signed char); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, unsigned char); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, char16_t); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, char32_t); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, wchar_t); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, short); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, unsigned short); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, int); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, unsigned int); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, long); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, unsigned long); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, long long); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_FOR_CERTAIN_INTEGER_SEQUENCE(BASE, unsigned long long); \
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL_(BASE); \
|
||||
template<template<BASE...> class IntegerSequenceClass, BASE... Vs> \
|
||||
struct joint_types_default<IntegerSequenceClass<Vs...> > { \
|
||||
public: \
|
||||
|
@ -216,8 +239,10 @@ namespace sprout {
|
|||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL(char);
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL(signed char);
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL(unsigned char);
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL(char16_t);
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL(char32_t);
|
||||
#endif
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL(wchar_t);
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL(short);
|
||||
SPROUT_TYPES_DETAIL_JOINT_TYPES_DEFAULT_APPLY_CERTAIN_INTEGER_SEQUENCE_DECL(unsigned short);
|
||||
|
|
|
@ -68,8 +68,10 @@ namespace sprout {
|
|||
SPROUT_TYPES_DETAIL_MAP_TYPES_DEFAULT_INTEGER_SEQUENCE_LIKE_DECL(char);
|
||||
SPROUT_TYPES_DETAIL_MAP_TYPES_DEFAULT_INTEGER_SEQUENCE_LIKE_DECL(signed char);
|
||||
SPROUT_TYPES_DETAIL_MAP_TYPES_DEFAULT_INTEGER_SEQUENCE_LIKE_DECL(unsigned char);
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
SPROUT_TYPES_DETAIL_MAP_TYPES_DEFAULT_INTEGER_SEQUENCE_LIKE_DECL(char16_t);
|
||||
SPROUT_TYPES_DETAIL_MAP_TYPES_DEFAULT_INTEGER_SEQUENCE_LIKE_DECL(char32_t);
|
||||
#endif
|
||||
SPROUT_TYPES_DETAIL_MAP_TYPES_DEFAULT_INTEGER_SEQUENCE_LIKE_DECL(wchar_t);
|
||||
SPROUT_TYPES_DETAIL_MAP_TYPES_DEFAULT_INTEGER_SEQUENCE_LIKE_DECL(short);
|
||||
SPROUT_TYPES_DETAIL_MAP_TYPES_DEFAULT_INTEGER_SEQUENCE_LIKE_DECL(unsigned short);
|
||||
|
|
|
@ -66,8 +66,10 @@ namespace sprout {
|
|||
SPROUT_TYPES_DETAIL_POP_FRONT_TYPES_DEFAULT_INTEGER_SEQUENCE_LIKE_DECL(char);
|
||||
SPROUT_TYPES_DETAIL_POP_FRONT_TYPES_DEFAULT_INTEGER_SEQUENCE_LIKE_DECL(signed char);
|
||||
SPROUT_TYPES_DETAIL_POP_FRONT_TYPES_DEFAULT_INTEGER_SEQUENCE_LIKE_DECL(unsigned char);
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
SPROUT_TYPES_DETAIL_POP_FRONT_TYPES_DEFAULT_INTEGER_SEQUENCE_LIKE_DECL(char16_t);
|
||||
SPROUT_TYPES_DETAIL_POP_FRONT_TYPES_DEFAULT_INTEGER_SEQUENCE_LIKE_DECL(char32_t);
|
||||
#endif
|
||||
SPROUT_TYPES_DETAIL_POP_FRONT_TYPES_DEFAULT_INTEGER_SEQUENCE_LIKE_DECL(wchar_t);
|
||||
SPROUT_TYPES_DETAIL_POP_FRONT_TYPES_DEFAULT_INTEGER_SEQUENCE_LIKE_DECL(short);
|
||||
SPROUT_TYPES_DETAIL_POP_FRONT_TYPES_DEFAULT_INTEGER_SEQUENCE_LIKE_DECL(unsigned short);
|
||||
|
|
|
@ -48,8 +48,10 @@ namespace sprout {
|
|||
SPROUT_TYPES_DETAIL_REBIND_TYPES_DEFAULT_INTEGER_SEQUENCE_LIKE_DECL(char);
|
||||
SPROUT_TYPES_DETAIL_REBIND_TYPES_DEFAULT_INTEGER_SEQUENCE_LIKE_DECL(signed char);
|
||||
SPROUT_TYPES_DETAIL_REBIND_TYPES_DEFAULT_INTEGER_SEQUENCE_LIKE_DECL(unsigned char);
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
SPROUT_TYPES_DETAIL_REBIND_TYPES_DEFAULT_INTEGER_SEQUENCE_LIKE_DECL(char16_t);
|
||||
SPROUT_TYPES_DETAIL_REBIND_TYPES_DEFAULT_INTEGER_SEQUENCE_LIKE_DECL(char32_t);
|
||||
#endif
|
||||
SPROUT_TYPES_DETAIL_REBIND_TYPES_DEFAULT_INTEGER_SEQUENCE_LIKE_DECL(wchar_t);
|
||||
SPROUT_TYPES_DETAIL_REBIND_TYPES_DEFAULT_INTEGER_SEQUENCE_LIKE_DECL(short);
|
||||
SPROUT_TYPES_DETAIL_REBIND_TYPES_DEFAULT_INTEGER_SEQUENCE_LIKE_DECL(unsigned short);
|
||||
|
|
|
@ -25,16 +25,18 @@ namespace sprout {
|
|||
//
|
||||
template<wchar_t... Values>
|
||||
using wstring = sprout::types::basic_string<wchar_t, Values...>;
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
//
|
||||
// u16string
|
||||
//
|
||||
template<char... Values>
|
||||
using u16string = sprout::types::basic_string<char16_t, Values...>;
|
||||
//
|
||||
// string
|
||||
// u32string
|
||||
//
|
||||
template<char... Values>
|
||||
using u32string = sprout::types::basic_string<char32_t, Values...>;
|
||||
#endif
|
||||
} // namespace types
|
||||
} // namespace sprout
|
||||
|
||||
|
|
|
@ -64,8 +64,10 @@ namespace sprout {
|
|||
SPROUT_TYPES_DETAIL_TUPLE_SIZE_DEFAULT_IMPL_INTEGER_SEQUENCE_LIKE_DECL(char);
|
||||
SPROUT_TYPES_DETAIL_TUPLE_SIZE_DEFAULT_IMPL_INTEGER_SEQUENCE_LIKE_DECL(signed char);
|
||||
SPROUT_TYPES_DETAIL_TUPLE_SIZE_DEFAULT_IMPL_INTEGER_SEQUENCE_LIKE_DECL(unsigned char);
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
SPROUT_TYPES_DETAIL_TUPLE_SIZE_DEFAULT_IMPL_INTEGER_SEQUENCE_LIKE_DECL(char16_t);
|
||||
SPROUT_TYPES_DETAIL_TUPLE_SIZE_DEFAULT_IMPL_INTEGER_SEQUENCE_LIKE_DECL(char32_t);
|
||||
#endif
|
||||
SPROUT_TYPES_DETAIL_TUPLE_SIZE_DEFAULT_IMPL_INTEGER_SEQUENCE_LIKE_DECL(wchar_t);
|
||||
SPROUT_TYPES_DETAIL_TUPLE_SIZE_DEFAULT_IMPL_INTEGER_SEQUENCE_LIKE_DECL(short);
|
||||
SPROUT_TYPES_DETAIL_TUPLE_SIZE_DEFAULT_IMPL_INTEGER_SEQUENCE_LIKE_DECL(unsigned short);
|
||||
|
@ -121,8 +123,10 @@ namespace sprout {
|
|||
SPROUT_TYPES_DETAIL_TUPLE_ELEMENT_DEFAULT_IMPL_INTEGER_SEQUENCE_LIKE_DECL(char);
|
||||
SPROUT_TYPES_DETAIL_TUPLE_ELEMENT_DEFAULT_IMPL_INTEGER_SEQUENCE_LIKE_DECL(signed char);
|
||||
SPROUT_TYPES_DETAIL_TUPLE_ELEMENT_DEFAULT_IMPL_INTEGER_SEQUENCE_LIKE_DECL(unsigned char);
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
SPROUT_TYPES_DETAIL_TUPLE_ELEMENT_DEFAULT_IMPL_INTEGER_SEQUENCE_LIKE_DECL(char16_t);
|
||||
SPROUT_TYPES_DETAIL_TUPLE_ELEMENT_DEFAULT_IMPL_INTEGER_SEQUENCE_LIKE_DECL(char32_t);
|
||||
#endif
|
||||
SPROUT_TYPES_DETAIL_TUPLE_ELEMENT_DEFAULT_IMPL_INTEGER_SEQUENCE_LIKE_DECL(wchar_t);
|
||||
SPROUT_TYPES_DETAIL_TUPLE_ELEMENT_DEFAULT_IMPL_INTEGER_SEQUENCE_LIKE_DECL(short);
|
||||
SPROUT_TYPES_DETAIL_TUPLE_ELEMENT_DEFAULT_IMPL_INTEGER_SEQUENCE_LIKE_DECL(unsigned short);
|
||||
|
|
|
@ -40,6 +40,7 @@ namespace sprout {
|
|||
struct is_c_str<wchar_t[N]>
|
||||
: public sprout::true_type
|
||||
{};
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
template<std::size_t N>
|
||||
struct is_c_str<char16_t[N]>
|
||||
: public sprout::true_type
|
||||
|
@ -48,6 +49,7 @@ namespace sprout {
|
|||
struct is_c_str<char32_t[N]>
|
||||
: public sprout::true_type
|
||||
{};
|
||||
#endif
|
||||
|
||||
#if SPROUT_USE_VARIABLE_TEMPLATES
|
||||
template<typename T>
|
||||
|
|
|
@ -39,6 +39,7 @@ namespace sprout {
|
|||
struct is_char_type<wchar_t>
|
||||
: public sprout::true_type
|
||||
{};
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
template<>
|
||||
struct is_char_type<char16_t>
|
||||
: public sprout::true_type
|
||||
|
@ -47,6 +48,7 @@ namespace sprout {
|
|||
struct is_char_type<char32_t>
|
||||
: public sprout::true_type
|
||||
{};
|
||||
#endif
|
||||
|
||||
#if SPROUT_USE_VARIABLE_TEMPLATES
|
||||
template<typename T>
|
||||
|
|
|
@ -22,8 +22,10 @@ namespace sprout {
|
|||
//
|
||||
typedef sprout::basic_string_ref<char> string_ref;
|
||||
typedef sprout::basic_string_ref<wchar_t> wstring_ref;
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
typedef sprout::basic_string_ref<char16_t> u16string_ref;
|
||||
typedef sprout::basic_string_ref<char32_t> u32string_ref;
|
||||
#endif
|
||||
//
|
||||
// string_view
|
||||
// wstring_view
|
||||
|
@ -32,8 +34,10 @@ namespace sprout {
|
|||
//
|
||||
typedef sprout::basic_string_ref<char> string_view;
|
||||
typedef sprout::basic_string_ref<wchar_t> wstring_view;
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
typedef sprout::basic_string_ref<char16_t> u16string_view;
|
||||
typedef sprout::basic_string_ref<char32_t> u32string_view;
|
||||
#endif
|
||||
|
||||
#if SPROUT_USE_TEMPLATE_ALIASES
|
||||
//
|
||||
|
@ -122,6 +126,8 @@ namespace sprout {
|
|||
: public sprout::is_wstring_ref<T>
|
||||
{};
|
||||
#endif // #if SPROUT_USE_TEMPLATE_ALIASES
|
||||
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
//
|
||||
// is_u16string_view
|
||||
//
|
||||
|
@ -146,6 +152,7 @@ namespace sprout {
|
|||
: public sprout::is_u32string_ref<T>
|
||||
{};
|
||||
#endif // #if SPROUT_USE_TEMPLATE_ALIASES
|
||||
#endif
|
||||
|
||||
#if SPROUT_USE_VARIABLE_TEMPLATES
|
||||
template<typename T>
|
||||
|
@ -156,10 +163,12 @@ namespace sprout {
|
|||
SPROUT_STATIC_CONSTEXPR bool is_string_view_v = sprout::is_string_view<T>::value;
|
||||
template<typename T>
|
||||
SPROUT_STATIC_CONSTEXPR bool is_wstring_view_v = sprout::is_wstring_view<T>::value;
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
template<typename T>
|
||||
SPROUT_STATIC_CONSTEXPR bool is_u16string_view_v = sprout::is_u16string_view<T>::value;
|
||||
template<typename T>
|
||||
SPROUT_STATIC_CONSTEXPR bool is_u32string_view_v = sprout::is_u32string_view<T>::value;
|
||||
#endif
|
||||
#endif // #if SPROUT_USE_VARIABLE_TEMPLATES
|
||||
} // namespace sprout
|
||||
|
||||
|
|
|
@ -67,6 +67,7 @@ namespace sprout {
|
|||
struct is_wstring_ref
|
||||
: public sprout::is_string_ref_of<T, wchar_t>
|
||||
{};
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
//
|
||||
// is_u16string_ref
|
||||
//
|
||||
|
@ -81,6 +82,7 @@ namespace sprout {
|
|||
struct is_u32string_ref
|
||||
: public sprout::is_string_ref_of<T, char32_t>
|
||||
{};
|
||||
#endif
|
||||
|
||||
#if SPROUT_USE_VARIABLE_TEMPLATES
|
||||
template<typename T>
|
||||
|
@ -91,10 +93,12 @@ namespace sprout {
|
|||
SPROUT_STATIC_CONSTEXPR bool is_string_ref_v = sprout::is_string_ref<T>::value;
|
||||
template<typename T>
|
||||
SPROUT_STATIC_CONSTEXPR bool is_wstring_ref_v = sprout::is_wstring_ref<T>::value;
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
template<typename T>
|
||||
SPROUT_STATIC_CONSTEXPR bool is_u16string_ref_v = sprout::is_u16string_ref<T>::value;
|
||||
template<typename T>
|
||||
SPROUT_STATIC_CONSTEXPR bool is_u32string_ref_v = sprout::is_u32string_ref<T>::value;
|
||||
#endif
|
||||
#endif // #if SPROUT_USE_VARIABLE_TEMPLATES
|
||||
} // namespace sprout
|
||||
|
||||
|
|
|
@ -177,6 +177,7 @@ namespace sprout {
|
|||
to_wstring(sprout::uuids::uuid const& u) {
|
||||
return sprout::uuids::to_string_of<wchar_t>(u);
|
||||
}
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
inline SPROUT_CONSTEXPR sprout::basic_string<char16_t, 36>
|
||||
to_u16string(sprout::uuids::uuid const& u) {
|
||||
return sprout::uuids::to_string_of<char16_t>(u);
|
||||
|
@ -185,6 +186,7 @@ namespace sprout {
|
|||
to_u32string(sprout::uuids::uuid const& u) {
|
||||
return sprout::uuids::to_string_of<char32_t>(u);
|
||||
}
|
||||
#endif
|
||||
} // namespace uuids
|
||||
} // namespace sprout
|
||||
|
||||
|
|
|
@ -67,12 +67,14 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR result_type operator()(wchar_t const* name) const {
|
||||
return sha_to_uuid(sum_.c_process_bytes(name, sprout::char_traits<wchar_t>::length(name)));
|
||||
}
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
SPROUT_CONSTEXPR result_type operator()(char16_t const* name) const {
|
||||
return sha_to_uuid(sum_.c_process_bytes(name, sprout::char_traits<char16_t>::length(name)));
|
||||
}
|
||||
SPROUT_CONSTEXPR result_type operator()(char32_t const* name) const {
|
||||
return sha_to_uuid(sum_.c_process_bytes(name, sprout::char_traits<char32_t>::length(name)));
|
||||
}
|
||||
#endif
|
||||
};
|
||||
|
||||
//
|
||||
|
@ -91,6 +93,7 @@ namespace sprout {
|
|||
make_uuid3(wchar_t const* name) {
|
||||
return sprout::uuids::md5_name_generator()(name);
|
||||
}
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
inline SPROUT_CONSTEXPR sprout::uuids::uuid
|
||||
make_uuid3(char16_t const* name) {
|
||||
return sprout::uuids::md5_name_generator()(name);
|
||||
|
@ -99,6 +102,7 @@ namespace sprout {
|
|||
make_uuid3(char32_t const* name) {
|
||||
return sprout::uuids::md5_name_generator()(name);
|
||||
}
|
||||
#endif
|
||||
|
||||
template<typename Elem, std::size_t N, typename Traits>
|
||||
inline SPROUT_CONSTEXPR sprout::uuids::uuid
|
||||
|
@ -113,6 +117,7 @@ namespace sprout {
|
|||
make_uuid3(sprout::uuids::uuid const& namespace_uuid, wchar_t const* name) {
|
||||
return sprout::uuids::md5_name_generator(namespace_uuid)(name);
|
||||
}
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
inline SPROUT_CONSTEXPR sprout::uuids::uuid
|
||||
make_uuid3(sprout::uuids::uuid const& namespace_uuid, char16_t const* name) {
|
||||
return sprout::uuids::md5_name_generator(namespace_uuid)(name);
|
||||
|
@ -121,6 +126,7 @@ namespace sprout {
|
|||
make_uuid3(sprout::uuids::uuid const& namespace_uuid, char32_t const* name) {
|
||||
return sprout::uuids::md5_name_generator(namespace_uuid)(name);
|
||||
}
|
||||
#endif
|
||||
|
||||
inline SPROUT_CONSTEXPR sprout::uuids::md5_name_generator
|
||||
make_uuid3() {
|
||||
|
|
|
@ -67,12 +67,14 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR result_type operator()(wchar_t const* name) const {
|
||||
return sha_to_uuid(sum_.c_process_bytes(name, sprout::char_traits<wchar_t>::length(name)));
|
||||
}
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
SPROUT_CONSTEXPR result_type operator()(char16_t const* name) const {
|
||||
return sha_to_uuid(sum_.c_process_bytes(name, sprout::char_traits<char16_t>::length(name)));
|
||||
}
|
||||
SPROUT_CONSTEXPR result_type operator()(char32_t const* name) const {
|
||||
return sha_to_uuid(sum_.c_process_bytes(name, sprout::char_traits<char32_t>::length(name)));
|
||||
}
|
||||
#endif
|
||||
};
|
||||
|
||||
//
|
||||
|
@ -91,6 +93,7 @@ namespace sprout {
|
|||
make_uuid5(wchar_t const* name) {
|
||||
return sprout::uuids::sha1_name_generator()(name);
|
||||
}
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
inline SPROUT_CONSTEXPR sprout::uuids::uuid
|
||||
make_uuid5(char16_t const* name) {
|
||||
return sprout::uuids::sha1_name_generator()(name);
|
||||
|
@ -99,6 +102,7 @@ namespace sprout {
|
|||
make_uuid5(char32_t const* name) {
|
||||
return sprout::uuids::sha1_name_generator()(name);
|
||||
}
|
||||
#endif
|
||||
|
||||
template<typename Elem, std::size_t N, typename Traits>
|
||||
inline SPROUT_CONSTEXPR sprout::uuids::uuid
|
||||
|
@ -113,6 +117,7 @@ namespace sprout {
|
|||
make_uuid5(sprout::uuids::uuid const& namespace_uuid, wchar_t const* name) {
|
||||
return sprout::uuids::sha1_name_generator(namespace_uuid)(name);
|
||||
}
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
inline SPROUT_CONSTEXPR sprout::uuids::uuid
|
||||
make_uuid5(sprout::uuids::uuid const& namespace_uuid, char16_t const* name) {
|
||||
return sprout::uuids::sha1_name_generator(namespace_uuid)(name);
|
||||
|
@ -121,6 +126,7 @@ namespace sprout {
|
|||
make_uuid5(sprout::uuids::uuid const& namespace_uuid, char32_t const* name) {
|
||||
return sprout::uuids::sha1_name_generator(namespace_uuid)(name);
|
||||
}
|
||||
#endif
|
||||
|
||||
inline SPROUT_CONSTEXPR sprout::uuids::sha1_name_generator
|
||||
make_uuid5() {
|
||||
|
|
|
@ -177,12 +177,14 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR result_type operator()(wchar_t const* s) const {
|
||||
return operator()(s, s + sprout::char_traits<wchar_t>::length(s));
|
||||
}
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
SPROUT_CONSTEXPR result_type operator()(char16_t const* s) const {
|
||||
return operator()(s, s + sprout::char_traits<char16_t>::length(s));
|
||||
}
|
||||
SPROUT_CONSTEXPR result_type operator()(char32_t const* s) const {
|
||||
return operator()(s, s + sprout::char_traits<char32_t>::length(s));
|
||||
}
|
||||
#endif
|
||||
};
|
||||
|
||||
//
|
||||
|
@ -206,6 +208,7 @@ namespace sprout {
|
|||
make_uuid(wchar_t const* s) {
|
||||
return sprout::uuids::string_generator()(s);
|
||||
}
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
inline SPROUT_CONSTEXPR sprout::uuids::uuid
|
||||
make_uuid(char16_t const* s) {
|
||||
return sprout::uuids::string_generator()(s);
|
||||
|
@ -214,6 +217,7 @@ namespace sprout {
|
|||
make_uuid(char32_t const* s) {
|
||||
return sprout::uuids::string_generator()(s);
|
||||
}
|
||||
#endif
|
||||
} // namespace uuids
|
||||
} // namespace sprout
|
||||
|
||||
|
|
|
@ -72,6 +72,7 @@ namespace sprout {
|
|||
operator"" _uuid(wchar_t const* s, std::size_t size) {
|
||||
return sprout::uuids::make_uuid(s, s + size);
|
||||
}
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
inline SPROUT_CONSTEXPR sprout::uuids::uuid
|
||||
operator"" _uuid(char16_t const* s, std::size_t size) {
|
||||
return sprout::uuids::make_uuid(s, s + size);
|
||||
|
@ -80,6 +81,7 @@ namespace sprout {
|
|||
operator"" _uuid(char32_t const* s, std::size_t size) {
|
||||
return sprout::uuids::make_uuid(s, s + size);
|
||||
}
|
||||
#endif
|
||||
|
||||
//
|
||||
// _uuid3
|
||||
|
@ -92,6 +94,7 @@ namespace sprout {
|
|||
operator"" _uuid3(wchar_t const* s, std::size_t size) {
|
||||
return sprout::uuids::detail::uuid3_impl(sprout::range::make_ptr_range(s, size));
|
||||
}
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
inline SPROUT_CONSTEXPR sprout::uuids::md5_name_generator
|
||||
operator"" _uuid3(char16_t const* s, std::size_t size) {
|
||||
return sprout::uuids::detail::uuid3_impl(sprout::range::make_ptr_range(s, size));
|
||||
|
@ -100,6 +103,7 @@ namespace sprout {
|
|||
operator"" _uuid3(char32_t const* s, std::size_t size) {
|
||||
return sprout::uuids::detail::uuid3_impl(sprout::range::make_ptr_range(s, size));
|
||||
}
|
||||
#endif
|
||||
|
||||
//
|
||||
// _uuid5
|
||||
|
@ -112,6 +116,7 @@ namespace sprout {
|
|||
operator"" _uuid5(wchar_t const* s, std::size_t size) {
|
||||
return sprout::uuids::detail::uuid5_impl(sprout::range::make_ptr_range(s, size));
|
||||
}
|
||||
#if SPROUT_USE_UNICODE_LITERALS
|
||||
inline SPROUT_CONSTEXPR sprout::uuids::sha1_name_generator
|
||||
operator"" _uuid5(char16_t const* s, std::size_t size) {
|
||||
return sprout::uuids::detail::uuid5_impl(sprout::range::make_ptr_range(s, size));
|
||||
|
@ -120,6 +125,7 @@ namespace sprout {
|
|||
operator"" _uuid5(char32_t const* s, std::size_t size) {
|
||||
return sprout::uuids::detail::uuid5_impl(sprout::range::make_ptr_range(s, size));
|
||||
}
|
||||
#endif
|
||||
} // namespace udl
|
||||
|
||||
using sprout::uuids::udl::operator"" _uuid;
|
||||
|
|
Loading…
Reference in a new issue