mirror of
https://github.com/bolero-MURAKAMI/Sprout.git
synced 2024-12-23 21:25:49 +00:00
add PP_UNIQUE_SEED variation
This commit is contained in:
parent
b15038e5ca
commit
6ac5b66d0b
6 changed files with 78 additions and 14 deletions
|
@ -43,4 +43,15 @@
|
|||
# define SPROUT_PP_VARIADICS 0
|
||||
#endif
|
||||
|
||||
//
|
||||
// SPROUT_PP_HAS_COUNTER
|
||||
//
|
||||
#ifdef __COUNTER__
|
||||
# undef SPROUT_PP_HAS_COUNTER
|
||||
# define SPROUT_PP_HAS_COUNTER 1
|
||||
#else
|
||||
# undef SPROUT_PP_HAS_COUNTER
|
||||
# define SPROUT_PP_HAS_COUNTER 0
|
||||
#endif
|
||||
|
||||
#endif // #ifndef SPROUT_PREPROCESSOR_CONFIG_HPP
|
||||
|
|
|
@ -9,13 +9,25 @@
|
|||
#define SPROUT_PREPROCESSOR_SOME_NUMBER_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/preprocessor/config.hpp>
|
||||
#include <sprout/preprocessor/empty.hpp>
|
||||
|
||||
//
|
||||
// SPROUT_PP_SOME_NUMBER_IS_UNIQUE_IN_LINE
|
||||
//
|
||||
#if SPROUT_PP_HAS_COUNTER
|
||||
# undef SPROUT_PP_SOME_NUMBER_IS_UNIQUE_IN_LINE
|
||||
# define SPROUT_PP_SOME_NUMBER_IS_UNIQUE_IN_LINE 1
|
||||
#else
|
||||
# undef SPROUT_PP_SOME_NUMBER_IS_UNIQUE_IN_LINE
|
||||
# define SPROUT_PP_SOME_NUMBER_IS_UNIQUE_IN_LINE 0
|
||||
#endif
|
||||
|
||||
//
|
||||
// SPROUT_PP_SOME_NUMBER
|
||||
// SPROUT_PP_SOME_NUMBER_OR_EMPTY
|
||||
//
|
||||
#ifdef __COUNTER__
|
||||
#if SPROUT_PP_HAS_COUNTER
|
||||
# define SPROUT_PP_SOME_NUMBER() __COUNTER__
|
||||
# define SPROUT_PP_SOME_NUMBER_OR_EMPTY() SPROUT_PP_SOME_NUMBER()
|
||||
#else
|
||||
|
|
18
sprout/preprocessor/str.hpp
Normal file
18
sprout/preprocessor/str.hpp
Normal file
|
@ -0,0 +1,18 @@
|
|||
/*=============================================================================
|
||||
Copyright (c) 2011-2016 Bolero MURAKAMI
|
||||
https://github.com/bolero-MURAKAMI/Sprout
|
||||
|
||||
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_PREPROCESSOR_STR_HPP
|
||||
#define SPROUT_PREPROCESSOR_STR_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
|
||||
//
|
||||
// SPROUT_PP_STR
|
||||
//
|
||||
#define SPROUT_PP_STR(str) str
|
||||
|
||||
#endif // #ifndef SPROUT_PREPROCESSOR_STR_HPP
|
|
@ -9,6 +9,7 @@
|
|||
#define SPROUT_PREPROCESSOR_STR_ALL_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/preprocessor/str.hpp>
|
||||
#include <sprout/preprocessor/wstr.hpp>
|
||||
#include <sprout/preprocessor/u16str.hpp>
|
||||
#include <sprout/preprocessor/u32str.hpp>
|
||||
|
|
|
@ -13,6 +13,29 @@
|
|||
#include <sprout/preprocessor/str_all.hpp>
|
||||
#include <sprout/preprocessor/some_number.hpp>
|
||||
|
||||
//
|
||||
// SPROUT_PP_UNIQUE_STRING_
|
||||
// SPROUT_PP_UNIQUE_WSTRING_
|
||||
// SPROUT_PP_UNIQUE_U16STRING_
|
||||
// SPROUT_PP_UNIQUE_U32STRING_
|
||||
//
|
||||
#define SPROUT_PP_UNIQUE_STRING_(N) \
|
||||
SPROUT_PP_STRINGIZE(N) SPROUT_PP_STR(" ") \
|
||||
SPROUT_PP_STR(__DATE__) SPROUT_PP_STR(" ") SPROUT_PP_STR(__TIME__) \
|
||||
SPROUT_PP_STR(" : ") SPROUT_PP_STR(__FILE__) SPROUT_PP_STR(":") SPROUT_PP_STRINGIZE(__LINE__)
|
||||
#define SPROUT_PP_UNIQUE_WSTRING_(N) \
|
||||
SPROUT_PP_WSTRINGIZE(N) SPROUT_PP_WSTR(" ") \
|
||||
SPROUT_PP_WSTR(__DATE__) SPROUT_PP_WSTR(" ") SPROUT_PP_WSTR(__TIME__) \
|
||||
SPROUT_PP_WSTR(" : ") SPROUT_PP_WSTR(__FILE__) SPROUT_PP_WSTR(":") SPROUT_PP_WSTRINGIZE(__LINE__)
|
||||
#define SPROUT_PP_UNIQUE_U16STRING_(N) \
|
||||
SPROUT_PP_U16STRINGIZE(N) SPROUT_PP_U16STR(" ") \
|
||||
SPROUT_PP_U16STR(__DATE__) SPROUT_PP_U16STR(" ") SPROUT_PP_U16STR(__TIME__) \
|
||||
SPROUT_PP_U16STR(" : ") SPROUT_PP_U16STR(__FILE__) SPROUT_PP_U16STR(":") SPROUT_PP_U16STRINGIZE(__LINE__)
|
||||
#define SPROUT_PP_UNIQUE_U32STRING_(N) \
|
||||
SPROUT_PP_U32STRINGIZE(N) SPROUT_PP_U32STR(" ") \
|
||||
SPROUT_PP_U32STR(__DATE__) SPROUT_PP_U32STR(" ") SPROUT_PP_U32STR(__TIME__) \
|
||||
SPROUT_PP_U32STR(" : ") SPROUT_PP_U32STR(__FILE__) SPROUT_PP_U32STR(":") SPROUT_PP_U32STRINGIZE(__LINE__)
|
||||
|
||||
//
|
||||
// SPROUT_PP_UNIQUE_STRING
|
||||
// SPROUT_PP_UNIQUE_WSTRING
|
||||
|
@ -20,20 +43,12 @@
|
|||
// SPROUT_PP_UNIQUE_U32STRING
|
||||
//
|
||||
#define SPROUT_PP_UNIQUE_STRING \
|
||||
SPROUT_PP_STRINGIZE(SPROUT_PP_SOME_NUMBER()) " " \
|
||||
__DATE__ " " __TIME__ \
|
||||
" : " __FILE__ ":" SPROUT_PP_STRINGIZE(__LINE__)
|
||||
SPROUT_PP_UNIQUE_STRING_(SPROUT_PP_SOME_NUMBER())
|
||||
#define SPROUT_PP_UNIQUE_WSTRING \
|
||||
SPROUT_PP_WSTRINGIZE(SPROUT_PP_SOME_NUMBER()) SPROUT_PP_WSTR(" ") \
|
||||
SPROUT_PP_WSTR(__DATE__) SPROUT_PP_WSTR(" ") SPROUT_PP_WSTR(__TIME__) \
|
||||
SPROUT_PP_WSTR(" : ") SPROUT_PP_WSTR(__FILE__) SPROUT_PP_WSTR(":") SPROUT_PP_WSTRINGIZE(__LINE__)
|
||||
SPROUT_PP_UNIQUE_WSTRING_(SPROUT_PP_SOME_NUMBER())
|
||||
#define SPROUT_PP_UNIQUE_U16STRING \
|
||||
SPROUT_PP_U16STRINGIZE(SPROUT_PP_SOME_NUMBER()) SPROUT_PP_U16STR(" ") \
|
||||
SPROUT_PP_U16STR(__DATE__) SPROUT_PP_U16STR(" ") SPROUT_PP_U16STR(__TIME__) \
|
||||
SPROUT_PP_U16STR(" : ") SPROUT_PP_U16STR(__FILE__) SPROUT_PP_U16STR(":") SPROUT_PP_U16STRINGIZE(__LINE__)
|
||||
SPROUT_PP_UNIQUE_U16STRING_(SPROUT_PP_SOME_NUMBER())
|
||||
#define SPROUT_PP_UNIQUE_U32STRING \
|
||||
SPROUT_PP_U32STRINGIZE(SPROUT_PP_SOME_NUMBER()) SPROUT_PP_U32STR(" ") \
|
||||
SPROUT_PP_U32STR(__DATE__) SPROUT_PP_U32STR(" ") SPROUT_PP_U32STR(__TIME__) \
|
||||
SPROUT_PP_U32STR(" : ") SPROUT_PP_U32STR(__FILE__) SPROUT_PP_U32STR(":") SPROUT_PP_U32STRINGIZE(__LINE__)
|
||||
SPROUT_PP_UNIQUE_U32STRING_(SPROUT_PP_SOME_NUMBER())
|
||||
|
||||
#endif // #ifndef SPROUT_PREPROCESSOR_UNIQUE_STRING_HPP
|
||||
|
|
|
@ -54,10 +54,17 @@ namespace sprout {
|
|||
}
|
||||
} // namespace sprout
|
||||
|
||||
//
|
||||
// SPROUT_UNIQUE_SEED_
|
||||
//
|
||||
#define SPROUT_UNIQUE_SEED_(N) \
|
||||
(::sprout::make_seed(SPROUT_PP_UNIQUE_STRING_(N)))
|
||||
|
||||
//
|
||||
// SPROUT_UNIQUE_SEED
|
||||
//
|
||||
#define SPROUT_UNIQUE_SEED (::sprout::make_seed(SPROUT_PP_UNIQUE_STRING))
|
||||
#define SPROUT_UNIQUE_SEED \
|
||||
(::sprout::make_seed(SPROUT_PP_UNIQUE_STRING))
|
||||
|
||||
//
|
||||
// SPROUT_UNIQUE_SEED_SEQ
|
||||
|
|
Loading…
Reference in a new issue