/*============================================================================= Copyright (c) 2011-2018 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_UNIQUE_STRING_HPP #define SPROUT_PREPROCESSOR_UNIQUE_STRING_HPP #include #include #include #include // // 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_STRINGIZE(SPROUT_PP_SOME_NUMBER()) \ 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_STR(" ") 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__) #define SPROUT_PP_UNIQUE_U16STRING_(N) \ SPROUT_PP_U16STRINGIZE(N) SPROUT_PP_STR(" ") 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__) #define SPROUT_PP_UNIQUE_U32STRING_(N) \ SPROUT_PP_U32STRINGIZE(N) SPROUT_PP_STR(" ") 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_STRING // SPROUT_PP_UNIQUE_WSTRING // SPROUT_PP_UNIQUE_U16STRING // SPROUT_PP_UNIQUE_U32STRING // #define SPROUT_PP_UNIQUE_STRING \ SPROUT_PP_UNIQUE_STRING_(SPROUT_PP_SOME_NUMBER()) #define SPROUT_PP_UNIQUE_WSTRING \ SPROUT_PP_UNIQUE_WSTRING_(SPROUT_PP_SOME_NUMBER()) #define SPROUT_PP_UNIQUE_U16STRING \ SPROUT_PP_UNIQUE_U16STRING_(SPROUT_PP_SOME_NUMBER()) #define SPROUT_PP_UNIQUE_U32STRING \ SPROUT_PP_UNIQUE_U32STRING_(SPROUT_PP_SOME_NUMBER()) #endif // #ifndef SPROUT_PREPROCESSOR_UNIQUE_STRING_HPP