From 6b605aa70b3f6b61b49245b8b0a1f95cc9299a23 Mon Sep 17 00:00:00 2001 From: halx99 Date: Mon, 3 Aug 2026 15:05:52 +0800 Subject: [PATCH 1/2] Version 4.4.1 Remove tlx::sbyte_buffer --- 3rdparty/kcp | 2 +- 3rdparty/lua | 2 +- 3rdparty/sol/config.hpp | 10 +- 3rdparty/sol/forward.hpp | 131 ++-- 3rdparty/sol/sol.hpp | 839 ++++++++++++++++++------- docs/api/reference/ibstream-class.md | 2 +- docs/api/reference/io_event-class.md | 2 +- docs/api/reference/io_service-class.md | 4 +- docs/api/reference/obstream-class.md | 4 +- examples/ftp_server | 2 +- examples/lua/main.cpp | 11 +- tests/ssl/main.cpp | 9 +- tests/tcp/main.cpp | 4 +- yasio.pc | 2 +- yasio/bindings/lyasio.cpp | 34 +- yasio/bindings/yasio_jsb.cpp | 4 +- yasio/bindings/yasio_jsb20.cpp | 4 +- yasio/bindings/yasio_ni.cpp | 2 +- yasio/config.hpp | 2 +- yasio/ibstream.hpp | 10 +- yasio/io_service.cpp | 16 +- yasio/io_service.hpp | 44 +- yasio/obstream.hpp | 14 +- yasio/tlx/byte_buffer.hpp | 22 +- 24 files changed, 787 insertions(+), 389 deletions(-) diff --git a/3rdparty/kcp b/3rdparty/kcp index fbd716b25..b1a7a2101 160000 --- a/3rdparty/kcp +++ b/3rdparty/kcp @@ -1 +1 @@ -Subproject commit fbd716b257628036375b94061a38a188ea4ed0c8 +Subproject commit b1a7a2101dcbb96017681a500d6b82bbe5a88766 diff --git a/3rdparty/lua b/3rdparty/lua index 1ab3208a1..a5522f06d 160000 --- a/3rdparty/lua +++ b/3rdparty/lua @@ -1 +1 @@ -Subproject commit 1ab3208a1fceb12fca8f24ba57d6e13c5bff15e3 +Subproject commit a5522f06d2679b8f18534fd6a9968f7eb539dc31 diff --git a/3rdparty/sol/config.hpp b/3rdparty/sol/config.hpp index 3b7ef023f..8c3f1eb17 100644 --- a/3rdparty/sol/config.hpp +++ b/3rdparty/sol/config.hpp @@ -20,12 +20,12 @@ // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // This file was generated with a script. -// Generated 2022-06-25 08:14:19.336233 UTC -// This header was generated with sol v3.3.0 (revision eba86625) +// Generated 2026-02-02 04:53:33.295593 UTC +// This header was generated with sol v3.5.0.1 (revision c037c46a) // https://github.com/ThePhD/sol2 -#ifndef SOL_SINGLE_CONFIG_HPP -#define SOL_SINGLE_CONFIG_HPP +#ifndef SOL_SINGLE_SOL_CONFIG_HPP +#define SOL_SINGLE_SOL_CONFIG_HPP // beginning of sol/config.hpp @@ -50,4 +50,4 @@ the build system, or the command line options of your compiler. // end of sol/config.hpp -#endif // SOL_SINGLE_CONFIG_HPP +#endif // SOL_SINGLE_SOL_CONFIG_HPP diff --git a/3rdparty/sol/forward.hpp b/3rdparty/sol/forward.hpp index 869069087..51a4ad1d8 100644 --- a/3rdparty/sol/forward.hpp +++ b/3rdparty/sol/forward.hpp @@ -20,12 +20,12 @@ // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // This file was generated with a script. -// Generated 2022-06-25 08:14:19.328625 UTC -// This header was generated with sol v3.3.0 (revision eba86625) +// Generated 2026-02-02 04:53:33.295593 UTC +// This header was generated with sol v3.5.0.1 (revision c037c46a) // https://github.com/ThePhD/sol2 -#ifndef SOL_SINGLE_INCLUDE_FORWARD_HPP -#define SOL_SINGLE_INCLUDE_FORWARD_HPP +#ifndef SOL_SINGLE_INCLUDE_SOL_FORWARD_HPP +#define SOL_SINGLE_INCLUDE_SOL_FORWARD_HPP // beginning of sol/forward.hpp @@ -37,9 +37,9 @@ #include #define SOL_VERSION_MAJOR 3 -#define SOL_VERSION_MINOR 2 -#define SOL_VERSION_PATCH 3 -#define SOL_VERSION_STRING "3.2.3" +#define SOL_VERSION_MINOR 5 +#define SOL_VERSION_PATCH 0 +#define SOL_VERSION_STRING "3.5.0" #define SOL_VERSION ((SOL_VERSION_MAJOR * 100000) + (SOL_VERSION_MINOR * 100) + (SOL_VERSION_PATCH)) #define SOL_TOKEN_TO_STRING_POST_EXPANSION_I_(_TOKEN) #_TOKEN @@ -48,6 +48,7 @@ #define SOL_CONCAT_TOKENS_POST_EXPANSION_I_(_LEFT, _RIGHT) _LEFT##_RIGHT #define SOL_CONCAT_TOKENS_I_(_LEFT, _RIGHT) SOL_CONCAT_TOKENS_POST_EXPANSION_I_(_LEFT, _RIGHT) +#define SOL_RAW_USE(SYMBOL) SYMBOL #define SOL_RAW_IS_ON(OP_SYMBOL) ((3 OP_SYMBOL 3) != 0) #define SOL_RAW_IS_OFF(OP_SYMBOL) ((3 OP_SYMBOL 3) == 0) #define SOL_RAW_IS_DEFAULT_ON(OP_SYMBOL) ((3 OP_SYMBOL 3) > 3) @@ -57,6 +58,7 @@ #define SOL_IS_OFF(OP_SYMBOL) SOL_RAW_IS_OFF(OP_SYMBOL ## _I_) #define SOL_IS_DEFAULT_ON(OP_SYMBOL) SOL_RAW_IS_DEFAULT_ON(OP_SYMBOL ## _I_) #define SOL_IS_DEFAULT_OFF(OP_SYMBOL) SOL_RAW_IS_DEFAULT_OFF(OP_SYMBOL ## _I_) +#define SOL_USE(SYMBOL) SOL_RAW_USE(SYMBOL ## _I_) #define SOL_ON | #define SOL_OFF ^ @@ -97,8 +99,16 @@ #include #endif +#if defined(SOL_HAS_BUILTIN) + #define SOL_HAS_BUILTIN_I_(...) SOL_HAS_BUILTIN(__VA_ARGS__) +#elif defined(__has_builtin) + #define SOL_HAS_BUILTIN_I_(...) __has_builtin(__VA_ARGS__) +#else + #define SOL_HAS_BUILTIN_I_(...) 0 +#endif + #if defined(SOL_COMPILER_VCXX) - #if defined(SOL_COMPILER_VCXX != 0) + #if (SOL_COMPILER_VCXX != 0) #define SOL_COMPILER_VCXX_I_ SOL_ON #else #define SOL_COMPILER_VCXX_I_ SOL_OFF @@ -110,7 +120,7 @@ #endif #if defined(SOL_COMPILER_GCC) - #if defined(SOL_COMPILER_GCC != 0) + #if (SOL_COMPILER_GCC != 0) #define SOL_COMPILER_GCC_I_ SOL_ON #else #define SOL_COMPILER_GCC_I_ SOL_OFF @@ -122,7 +132,7 @@ #endif #if defined(SOL_COMPILER_CLANG) - #if defined(SOL_COMPILER_CLANG != 0) + #if (SOL_COMPILER_CLANG != 0) #define SOL_COMPILER_CLANG_I_ SOL_ON #else #define SOL_COMPILER_CLANG_I_ SOL_OFF @@ -134,7 +144,7 @@ #endif #if defined(SOL_COMPILER_EDG) - #if defined(SOL_COMPILER_EDG != 0) + #if (SOL_COMPILER_EDG != 0) #define SOL_COMPILER_EDG_I_ SOL_ON #else #define SOL_COMPILER_EDG_I_ SOL_OFF @@ -215,7 +225,7 @@ #define SOL_PLATFORM_UNIXLIKE_I_ SOL_OFF #endif #elif defined(__unix__) - #define SOL_PLATFORM_UNIXLIKE_I_ SOL_DEFAUKT_ON + #define SOL_PLATFORM_UNIXLIKE_I_ SOL_DEFAULT_ON #else #define SOL_PLATFORM_UNIXLIKE_I_ SOL_DEFAULT_OFF #endif @@ -227,7 +237,7 @@ #define SOL_PLATFORM_LINUXLIKE_I_ SOL_OFF #endif #elif defined(__LINUX__) - #define SOL_PLATFORM_LINUXLIKE_I_ SOL_DEFAUKT_ON + #define SOL_PLATFORM_LINUXLIKE_I_ SOL_DEFAULT_ON #else #define SOL_PLATFORM_LINUXLIKE_I_ SOL_DEFAULT_OFF #endif @@ -236,7 +246,7 @@ #define SOL_PLATFORM_BSDLIKE_I_ SOL_OFF #if defined(SOL_IN_DEBUG_DETECTED) - #if SOL_IN_DEBUG_DETECTED != 0 + #if (SOL_IN_DEBUG_DETECTED != 0) #define SOL_DEBUG_BUILD_I_ SOL_ON #else #define SOL_DEBUG_BUILD_I_ SOL_OFF @@ -298,7 +308,7 @@ #endif #if defined(SOL_NO_THREAD_LOCAL) - #if SOL_NO_THREAD_LOCAL != 0 + #if (SOL_NO_THREAD_LOCAL != 0) #define SOL_USE_THREAD_LOCAL_I_ SOL_OFF #else #define SOL_USE_THREAD_LOCAL_I_ SOL_ON @@ -308,7 +318,7 @@ #endif // thread_local keyword is bjorked on some platforms #if defined(SOL_ALL_SAFETIES_ON) - #if SOL_ALL_SAFETIES_ON != 0 + #if (SOL_ALL_SAFETIES_ON != 0) #define SOL_ALL_SAFETIES_ON_I_ SOL_ON #else #define SOL_ALL_SAFETIES_ON_I_ SOL_OFF @@ -318,7 +328,7 @@ #endif #if defined(SOL_SAFE_GETTER) - #if SOL_SAFE_GETTER != 0 + #if (SOL_SAFE_GETTER != 0) #define SOL_SAFE_GETTER_I_ SOL_ON #else #define SOL_SAFE_GETTER_I_ SOL_OFF @@ -334,7 +344,7 @@ #endif #if defined(SOL_SAFE_USERTYPE) - #if SOL_SAFE_USERTYPE != 0 + #if (SOL_SAFE_USERTYPE != 0) #define SOL_SAFE_USERTYPE_I_ SOL_ON #else #define SOL_SAFE_USERTYPE_I_ SOL_OFF @@ -350,7 +360,7 @@ #endif #if defined(SOL_SAFE_REFERENCES) - #if SOL_SAFE_REFERENCES != 0 + #if (SOL_SAFE_REFERENCES != 0) #define SOL_SAFE_REFERENCES_I_ SOL_ON #else #define SOL_SAFE_REFERENCES_I_ SOL_OFF @@ -366,13 +376,13 @@ #endif #if defined(SOL_SAFE_FUNCTIONS) - #if SOL_SAFE_FUNCTIONS != 0 + #if (SOL_SAFE_FUNCTIONS != 0) #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_ON #else #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_OFF #endif #elif defined (SOL_SAFE_FUNCTION_OBJECTS) - #if SOL_SAFE_FUNCTION_OBJECTS != 0 + #if (SOL_SAFE_FUNCTION_OBJECTS != 0) #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_ON #else #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_OFF @@ -388,7 +398,7 @@ #endif #if defined(SOL_SAFE_FUNCTION_CALLS) - #if SOL_SAFE_FUNCTION_CALLS != 0 + #if (SOL_SAFE_FUNCTION_CALLS != 0) #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_ON #else #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_OFF @@ -404,7 +414,7 @@ #endif #if defined(SOL_SAFE_PROXIES) - #if SOL_SAFE_PROXIES != 0 + #if (SOL_SAFE_PROXIES != 0) #define SOL_SAFE_PROXIES_I_ SOL_ON #else #define SOL_SAFE_PROXIES_I_ SOL_OFF @@ -420,7 +430,7 @@ #endif #if defined(SOL_SAFE_NUMERICS) - #if SOL_SAFE_NUMERICS != 0 + #if (SOL_SAFE_NUMERICS != 0) #define SOL_SAFE_NUMERICS_I_ SOL_ON #else #define SOL_SAFE_NUMERICS_I_ SOL_OFF @@ -450,7 +460,7 @@ #endif #if defined(SOL_SAFE_STACK_CHECK) - #if SOL_SAFE_STACK_CHECK != 0 + #if (SOL_SAFE_STACK_CHECK != 0) #define SOL_SAFE_STACK_CHECK_I_ SOL_ON #else #define SOL_SAFE_STACK_CHECK_I_ SOL_OFF @@ -466,13 +476,13 @@ #endif #if defined(SOL_NO_CHECK_NUMBER_PRECISION) - #if SOL_NO_CHECK_NUMBER_PRECISION != 0 + #if (SOL_NO_CHECK_NUMBER_PRECISION != 0) #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_OFF #else #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON #endif #elif defined(SOL_NO_CHECKING_NUMBER_PRECISION) - #if SOL_NO_CHECKING_NUMBER_PRECISION != 0 + #if (SOL_NO_CHECKING_NUMBER_PRECISION != 0) #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_OFF #else #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON @@ -500,13 +510,13 @@ #endif #if defined(SOL_ENABLE_INTEROP) - #if SOL_ENABLE_INTEROP != 0 + #if (SOL_ENABLE_INTEROP != 0) #define SOL_USE_INTEROP_I_ SOL_ON #else #define SOL_USE_INTEROP_I_ SOL_OFF #endif #elif defined(SOL_USE_INTEROP) - #if SOL_USE_INTEROP != 0 + #if (SOL_USE_INTEROP != 0) #define SOL_USE_INTEROP_I_ SOL_ON #else #define SOL_USE_INTEROP_I_ SOL_OFF @@ -596,19 +606,19 @@ #endif #endif // noexcept is part of a function's type -#if defined(SOL_STACK_STRING_OPTIMIZATION_SIZE) && SOL_STACK_STRING_OPTIMIZATION_SIZE > 0 +#if defined(SOL_STACK_STRING_OPTIMIZATION_SIZE) && (SOL_STACK_STRING_OPTIMIZATION_SIZE > 0) #define SOL_OPTIMIZATION_STRING_CONVERSION_STACK_SIZE_I_ SOL_STACK_STRING_OPTIMIZATION_SIZE #else #define SOL_OPTIMIZATION_STRING_CONVERSION_STACK_SIZE_I_ 1024 #endif -#if defined(SOL_ID_SIZE) && SOL_ID_SIZE > 0 +#if defined(SOL_ID_SIZE) && (SOL_ID_SIZE > 0) #define SOL_ID_SIZE_I_ SOL_ID_SIZE #else #define SOL_ID_SIZE_I_ 512 #endif -#if defined(LUA_IDSIZE) && LUA_IDSIZE > 0 +#if defined(LUA_IDSIZE) && (LUA_IDSIZE > 0) #define SOL_FILE_ID_SIZE_I_ LUA_IDSIZE #elif defined(SOL_ID_SIZE) && SOL_ID_SIZE > 0 #define SOL_FILE_ID_SIZE_I_ SOL_FILE_ID_SIZE @@ -644,34 +654,35 @@ #if defined(SOL_USING_CXX_LUA) #if (SOL_USING_CXX_LUA != 0) - #define SOL_USE_CXX_LUA_I_ SOL_ON + #define SOL_USING_CXX_LUA_I_ SOL_ON #else - #define SOL_USE_CXX_LUA_I_ SOL_OFF + #define SOL_USING_CXX_LUA_I_ SOL_OFF #endif #elif defined(SOL_USE_CXX_LUA) + // alternative spelling #if (SOL_USE_CXX_LUA != 0) - #define SOL_USE_CXX_LUA_I_ SOL_ON + #define SOL_USING_CXX_LUA_I_ SOL_ON #else - #define SOL_USE_CXX_LUA_I_ SOL_OFF + #define SOL_USING_CXX_LUA_I_ SOL_OFF #endif #else - #define SOL_USE_CXX_LUA_I_ SOL_DEFAULT_OFF + #define SOL_USING_CXX_LUA_I_ SOL_DEFAULT_OFF #endif #if defined(SOL_USING_CXX_LUAJIT) - #if (SOL_USING_CXX_LUA != 0) - #define SOL_USE_CXX_LUAJIT_I_ SOL_ON + #if (SOL_USING_CXX_LUAJIT != 0) + #define SOL_USING_CXX_LUAJIT_I_ SOL_ON #else - #define SOL_USE_CXX_LUAJIT_I_ SOL_OFF + #define SOL_USING_CXX_LUAJIT_I_ SOL_OFF #endif #elif defined(SOL_USE_CXX_LUAJIT) - #if (SOL_USE_CXX_LUA != 0) - #define SOL_USE_CXX_LUAJIT_I_ SOL_ON + #if (SOL_USE_CXX_LUAJIT != 0) + #define SOL_USING_CXX_LUAJIT_I_ SOL_ON #else - #define SOL_USE_CXX_LUAJIT_I_ SOL_OFF + #define SOL_USING_CXX_LUAJIT_I_ SOL_OFF #endif #else - #define SOL_USE_CXX_LUAJIT_I_ SOL_DEFAULT_OFF + #define SOL_USING_CXX_LUAJIT_I_ SOL_DEFAULT_OFF #endif #if defined(SOL_NO_LUA_HPP) @@ -680,7 +691,7 @@ #else #define SOL_USE_LUA_HPP_I_ SOL_ON #endif -#elif defined(SOL_USING_CXX_LUA) +#elif SOL_IS_ON(SOL_USING_CXX_LUA) #define SOL_USE_LUA_HPP_I_ SOL_OFF #elif defined(__has_include) #if __has_include() @@ -766,6 +777,16 @@ #define SOL_GET_FUNCTION_POINTER_UNSAFE_I_ SOL_DEFAULT_OFF #endif +#if defined(SOL_CONTAINER_CHECK_IS_EXHAUSTIVE) + #if (SOL_CONTAINER_CHECK_IS_EXHAUSTIVE != 0) + #define SOL_CONTAINER_CHECK_IS_EXHAUSTIVE_I_ SOL_ON + #else + #define SOL_CONTAINER_CHECK_IS_EXHAUSTIVE_I_ SOL_OFF + #endif +#else + #define SOL_CONTAINER_CHECK_IS_EXHAUSTIVE_I_ SOL_DEFAULT_OFF +#endif + #if defined(SOL_FUNCTION_CALL_VALUE_SEMANTICS) #if (SOL_FUNCTION_CALL_VALUE_SEMANTICS != 0) #define SOL_FUNCTION_CALL_VALUE_SEMANTICS_I_ SOL_ON @@ -826,16 +847,16 @@ #define SOL2_CI_I_ SOL_DEFAULT_OFF #endif -#if defined(SOL_C_ASSERT) - #define SOL_USER_C_ASSERT_I_ SOL_ON +#if defined(SOL_ASSERT) + #define SOL_USER_ASSERT_I_ SOL_ON #else - #define SOL_USER_C_ASSERT_I_ SOL_DEFAULT_OFF + #define SOL_USER_ASSERT_I_ SOL_DEFAULT_OFF #endif -#if defined(SOL_M_ASSERT) - #define SOL_USER_M_ASSERT_I_ SOL_ON +#if defined(SOL_ASSERT_MSG) + #define SOL_USER_ASSERT_MSG_I_ SOL_ON #else - #define SOL_USER_M_ASSERT_I_ SOL_DEFAULT_OFF + #define SOL_USER_ASSERT_MSG_I_ SOL_DEFAULT_OFF #endif // beginning of sol/prologue.hpp @@ -1082,7 +1103,7 @@ #include #include -#if SOL_IS_ON(SOL_USE_CXX_LUA) || SOL_IS_ON(SOL_USE_CXX_LUAJIT) +#if SOL_IS_ON(SOL_USING_CXX_LUA) || SOL_IS_ON(SOL_USING_CXX_LUAJIT) struct lua_State; #else extern "C" { @@ -1305,7 +1326,7 @@ namespace sol { typedef ::sol::types<__VA_ARGS__> type; \ }; \ } \ - void a_sol3_detail_function_decl_please_no_collide() + static_assert(true, "") #define SOL_DERIVED_CLASSES(T, ...) \ namespace sol { \ template <> \ @@ -1313,9 +1334,9 @@ namespace sol { typedef ::sol::types<__VA_ARGS__> type; \ }; \ } \ - void a_sol3_detail_function_decl_please_no_collide() + static_assert(true, "") #endif // SOL_FORWARD_HPP // end of sol/forward.hpp -#endif // SOL_SINGLE_INCLUDE_FORWARD_HPP +#endif // SOL_SINGLE_INCLUDE_SOL_FORWARD_HPP diff --git a/3rdparty/sol/sol.hpp b/3rdparty/sol/sol.hpp index 8b0b7d36e..ffa145979 100644 --- a/3rdparty/sol/sol.hpp +++ b/3rdparty/sol/sol.hpp @@ -20,12 +20,12 @@ // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // This file was generated with a script. -// Generated 2022-06-25 08:14:19.151876 UTC -// This header was generated with sol v3.3.0 (revision eba86625) +// Generated 2026-02-02 04:53:33.200584 UTC +// This header was generated with sol v3.5.0.1 (revision c037c46a) // https://github.com/ThePhD/sol2 -#ifndef SOL_SINGLE_INCLUDE_HPP -#define SOL_SINGLE_INCLUDE_HPP +#ifndef SOL_SINGLE_INCLUDE_SOL_HPP +#define SOL_SINGLE_INCLUDE_SOL_HPP // beginning of sol/sol.hpp @@ -37,9 +37,9 @@ #include #define SOL_VERSION_MAJOR 3 -#define SOL_VERSION_MINOR 2 -#define SOL_VERSION_PATCH 3 -#define SOL_VERSION_STRING "3.2.3" +#define SOL_VERSION_MINOR 5 +#define SOL_VERSION_PATCH 0 +#define SOL_VERSION_STRING "3.5.0" #define SOL_VERSION ((SOL_VERSION_MAJOR * 100000) + (SOL_VERSION_MINOR * 100) + (SOL_VERSION_PATCH)) #define SOL_TOKEN_TO_STRING_POST_EXPANSION_I_(_TOKEN) #_TOKEN @@ -48,6 +48,7 @@ #define SOL_CONCAT_TOKENS_POST_EXPANSION_I_(_LEFT, _RIGHT) _LEFT##_RIGHT #define SOL_CONCAT_TOKENS_I_(_LEFT, _RIGHT) SOL_CONCAT_TOKENS_POST_EXPANSION_I_(_LEFT, _RIGHT) +#define SOL_RAW_USE(SYMBOL) SYMBOL #define SOL_RAW_IS_ON(OP_SYMBOL) ((3 OP_SYMBOL 3) != 0) #define SOL_RAW_IS_OFF(OP_SYMBOL) ((3 OP_SYMBOL 3) == 0) #define SOL_RAW_IS_DEFAULT_ON(OP_SYMBOL) ((3 OP_SYMBOL 3) > 3) @@ -57,6 +58,7 @@ #define SOL_IS_OFF(OP_SYMBOL) SOL_RAW_IS_OFF(OP_SYMBOL ## _I_) #define SOL_IS_DEFAULT_ON(OP_SYMBOL) SOL_RAW_IS_DEFAULT_ON(OP_SYMBOL ## _I_) #define SOL_IS_DEFAULT_OFF(OP_SYMBOL) SOL_RAW_IS_DEFAULT_OFF(OP_SYMBOL ## _I_) +#define SOL_USE(SYMBOL) SOL_RAW_USE(SYMBOL ## _I_) #define SOL_ON | #define SOL_OFF ^ @@ -97,8 +99,16 @@ #include #endif +#if defined(SOL_HAS_BUILTIN) + #define SOL_HAS_BUILTIN_I_(...) SOL_HAS_BUILTIN(__VA_ARGS__) +#elif defined(__has_builtin) + #define SOL_HAS_BUILTIN_I_(...) __has_builtin(__VA_ARGS__) +#else + #define SOL_HAS_BUILTIN_I_(...) 0 +#endif + #if defined(SOL_COMPILER_VCXX) - #if defined(SOL_COMPILER_VCXX != 0) + #if (SOL_COMPILER_VCXX != 0) #define SOL_COMPILER_VCXX_I_ SOL_ON #else #define SOL_COMPILER_VCXX_I_ SOL_OFF @@ -110,7 +120,7 @@ #endif #if defined(SOL_COMPILER_GCC) - #if defined(SOL_COMPILER_GCC != 0) + #if (SOL_COMPILER_GCC != 0) #define SOL_COMPILER_GCC_I_ SOL_ON #else #define SOL_COMPILER_GCC_I_ SOL_OFF @@ -122,7 +132,7 @@ #endif #if defined(SOL_COMPILER_CLANG) - #if defined(SOL_COMPILER_CLANG != 0) + #if (SOL_COMPILER_CLANG != 0) #define SOL_COMPILER_CLANG_I_ SOL_ON #else #define SOL_COMPILER_CLANG_I_ SOL_OFF @@ -134,7 +144,7 @@ #endif #if defined(SOL_COMPILER_EDG) - #if defined(SOL_COMPILER_EDG != 0) + #if (SOL_COMPILER_EDG != 0) #define SOL_COMPILER_EDG_I_ SOL_ON #else #define SOL_COMPILER_EDG_I_ SOL_OFF @@ -215,7 +225,7 @@ #define SOL_PLATFORM_UNIXLIKE_I_ SOL_OFF #endif #elif defined(__unix__) - #define SOL_PLATFORM_UNIXLIKE_I_ SOL_DEFAUKT_ON + #define SOL_PLATFORM_UNIXLIKE_I_ SOL_DEFAULT_ON #else #define SOL_PLATFORM_UNIXLIKE_I_ SOL_DEFAULT_OFF #endif @@ -227,7 +237,7 @@ #define SOL_PLATFORM_LINUXLIKE_I_ SOL_OFF #endif #elif defined(__LINUX__) - #define SOL_PLATFORM_LINUXLIKE_I_ SOL_DEFAUKT_ON + #define SOL_PLATFORM_LINUXLIKE_I_ SOL_DEFAULT_ON #else #define SOL_PLATFORM_LINUXLIKE_I_ SOL_DEFAULT_OFF #endif @@ -236,7 +246,7 @@ #define SOL_PLATFORM_BSDLIKE_I_ SOL_OFF #if defined(SOL_IN_DEBUG_DETECTED) - #if SOL_IN_DEBUG_DETECTED != 0 + #if (SOL_IN_DEBUG_DETECTED != 0) #define SOL_DEBUG_BUILD_I_ SOL_ON #else #define SOL_DEBUG_BUILD_I_ SOL_OFF @@ -298,7 +308,7 @@ #endif #if defined(SOL_NO_THREAD_LOCAL) - #if SOL_NO_THREAD_LOCAL != 0 + #if (SOL_NO_THREAD_LOCAL != 0) #define SOL_USE_THREAD_LOCAL_I_ SOL_OFF #else #define SOL_USE_THREAD_LOCAL_I_ SOL_ON @@ -308,7 +318,7 @@ #endif // thread_local keyword is bjorked on some platforms #if defined(SOL_ALL_SAFETIES_ON) - #if SOL_ALL_SAFETIES_ON != 0 + #if (SOL_ALL_SAFETIES_ON != 0) #define SOL_ALL_SAFETIES_ON_I_ SOL_ON #else #define SOL_ALL_SAFETIES_ON_I_ SOL_OFF @@ -318,7 +328,7 @@ #endif #if defined(SOL_SAFE_GETTER) - #if SOL_SAFE_GETTER != 0 + #if (SOL_SAFE_GETTER != 0) #define SOL_SAFE_GETTER_I_ SOL_ON #else #define SOL_SAFE_GETTER_I_ SOL_OFF @@ -334,7 +344,7 @@ #endif #if defined(SOL_SAFE_USERTYPE) - #if SOL_SAFE_USERTYPE != 0 + #if (SOL_SAFE_USERTYPE != 0) #define SOL_SAFE_USERTYPE_I_ SOL_ON #else #define SOL_SAFE_USERTYPE_I_ SOL_OFF @@ -350,7 +360,7 @@ #endif #if defined(SOL_SAFE_REFERENCES) - #if SOL_SAFE_REFERENCES != 0 + #if (SOL_SAFE_REFERENCES != 0) #define SOL_SAFE_REFERENCES_I_ SOL_ON #else #define SOL_SAFE_REFERENCES_I_ SOL_OFF @@ -366,13 +376,13 @@ #endif #if defined(SOL_SAFE_FUNCTIONS) - #if SOL_SAFE_FUNCTIONS != 0 + #if (SOL_SAFE_FUNCTIONS != 0) #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_ON #else #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_OFF #endif #elif defined (SOL_SAFE_FUNCTION_OBJECTS) - #if SOL_SAFE_FUNCTION_OBJECTS != 0 + #if (SOL_SAFE_FUNCTION_OBJECTS != 0) #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_ON #else #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_OFF @@ -388,7 +398,7 @@ #endif #if defined(SOL_SAFE_FUNCTION_CALLS) - #if SOL_SAFE_FUNCTION_CALLS != 0 + #if (SOL_SAFE_FUNCTION_CALLS != 0) #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_ON #else #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_OFF @@ -404,7 +414,7 @@ #endif #if defined(SOL_SAFE_PROXIES) - #if SOL_SAFE_PROXIES != 0 + #if (SOL_SAFE_PROXIES != 0) #define SOL_SAFE_PROXIES_I_ SOL_ON #else #define SOL_SAFE_PROXIES_I_ SOL_OFF @@ -420,7 +430,7 @@ #endif #if defined(SOL_SAFE_NUMERICS) - #if SOL_SAFE_NUMERICS != 0 + #if (SOL_SAFE_NUMERICS != 0) #define SOL_SAFE_NUMERICS_I_ SOL_ON #else #define SOL_SAFE_NUMERICS_I_ SOL_OFF @@ -450,7 +460,7 @@ #endif #if defined(SOL_SAFE_STACK_CHECK) - #if SOL_SAFE_STACK_CHECK != 0 + #if (SOL_SAFE_STACK_CHECK != 0) #define SOL_SAFE_STACK_CHECK_I_ SOL_ON #else #define SOL_SAFE_STACK_CHECK_I_ SOL_OFF @@ -466,13 +476,13 @@ #endif #if defined(SOL_NO_CHECK_NUMBER_PRECISION) - #if SOL_NO_CHECK_NUMBER_PRECISION != 0 + #if (SOL_NO_CHECK_NUMBER_PRECISION != 0) #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_OFF #else #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON #endif #elif defined(SOL_NO_CHECKING_NUMBER_PRECISION) - #if SOL_NO_CHECKING_NUMBER_PRECISION != 0 + #if (SOL_NO_CHECKING_NUMBER_PRECISION != 0) #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_OFF #else #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON @@ -500,13 +510,13 @@ #endif #if defined(SOL_ENABLE_INTEROP) - #if SOL_ENABLE_INTEROP != 0 + #if (SOL_ENABLE_INTEROP != 0) #define SOL_USE_INTEROP_I_ SOL_ON #else #define SOL_USE_INTEROP_I_ SOL_OFF #endif #elif defined(SOL_USE_INTEROP) - #if SOL_USE_INTEROP != 0 + #if (SOL_USE_INTEROP != 0) #define SOL_USE_INTEROP_I_ SOL_ON #else #define SOL_USE_INTEROP_I_ SOL_OFF @@ -596,19 +606,19 @@ #endif #endif // noexcept is part of a function's type -#if defined(SOL_STACK_STRING_OPTIMIZATION_SIZE) && SOL_STACK_STRING_OPTIMIZATION_SIZE > 0 +#if defined(SOL_STACK_STRING_OPTIMIZATION_SIZE) && (SOL_STACK_STRING_OPTIMIZATION_SIZE > 0) #define SOL_OPTIMIZATION_STRING_CONVERSION_STACK_SIZE_I_ SOL_STACK_STRING_OPTIMIZATION_SIZE #else #define SOL_OPTIMIZATION_STRING_CONVERSION_STACK_SIZE_I_ 1024 #endif -#if defined(SOL_ID_SIZE) && SOL_ID_SIZE > 0 +#if defined(SOL_ID_SIZE) && (SOL_ID_SIZE > 0) #define SOL_ID_SIZE_I_ SOL_ID_SIZE #else #define SOL_ID_SIZE_I_ 512 #endif -#if defined(LUA_IDSIZE) && LUA_IDSIZE > 0 +#if defined(LUA_IDSIZE) && (LUA_IDSIZE > 0) #define SOL_FILE_ID_SIZE_I_ LUA_IDSIZE #elif defined(SOL_ID_SIZE) && SOL_ID_SIZE > 0 #define SOL_FILE_ID_SIZE_I_ SOL_FILE_ID_SIZE @@ -644,34 +654,35 @@ #if defined(SOL_USING_CXX_LUA) #if (SOL_USING_CXX_LUA != 0) - #define SOL_USE_CXX_LUA_I_ SOL_ON + #define SOL_USING_CXX_LUA_I_ SOL_ON #else - #define SOL_USE_CXX_LUA_I_ SOL_OFF + #define SOL_USING_CXX_LUA_I_ SOL_OFF #endif #elif defined(SOL_USE_CXX_LUA) + // alternative spelling #if (SOL_USE_CXX_LUA != 0) - #define SOL_USE_CXX_LUA_I_ SOL_ON + #define SOL_USING_CXX_LUA_I_ SOL_ON #else - #define SOL_USE_CXX_LUA_I_ SOL_OFF + #define SOL_USING_CXX_LUA_I_ SOL_OFF #endif #else - #define SOL_USE_CXX_LUA_I_ SOL_DEFAULT_OFF + #define SOL_USING_CXX_LUA_I_ SOL_DEFAULT_OFF #endif #if defined(SOL_USING_CXX_LUAJIT) - #if (SOL_USING_CXX_LUA != 0) - #define SOL_USE_CXX_LUAJIT_I_ SOL_ON + #if (SOL_USING_CXX_LUAJIT != 0) + #define SOL_USING_CXX_LUAJIT_I_ SOL_ON #else - #define SOL_USE_CXX_LUAJIT_I_ SOL_OFF + #define SOL_USING_CXX_LUAJIT_I_ SOL_OFF #endif #elif defined(SOL_USE_CXX_LUAJIT) - #if (SOL_USE_CXX_LUA != 0) - #define SOL_USE_CXX_LUAJIT_I_ SOL_ON + #if (SOL_USE_CXX_LUAJIT != 0) + #define SOL_USING_CXX_LUAJIT_I_ SOL_ON #else - #define SOL_USE_CXX_LUAJIT_I_ SOL_OFF + #define SOL_USING_CXX_LUAJIT_I_ SOL_OFF #endif #else - #define SOL_USE_CXX_LUAJIT_I_ SOL_DEFAULT_OFF + #define SOL_USING_CXX_LUAJIT_I_ SOL_DEFAULT_OFF #endif #if defined(SOL_NO_LUA_HPP) @@ -680,7 +691,7 @@ #else #define SOL_USE_LUA_HPP_I_ SOL_ON #endif -#elif defined(SOL_USING_CXX_LUA) +#elif SOL_IS_ON(SOL_USING_CXX_LUA) #define SOL_USE_LUA_HPP_I_ SOL_OFF #elif defined(__has_include) #if __has_include() @@ -766,6 +777,16 @@ #define SOL_GET_FUNCTION_POINTER_UNSAFE_I_ SOL_DEFAULT_OFF #endif +#if defined(SOL_CONTAINER_CHECK_IS_EXHAUSTIVE) + #if (SOL_CONTAINER_CHECK_IS_EXHAUSTIVE != 0) + #define SOL_CONTAINER_CHECK_IS_EXHAUSTIVE_I_ SOL_ON + #else + #define SOL_CONTAINER_CHECK_IS_EXHAUSTIVE_I_ SOL_OFF + #endif +#else + #define SOL_CONTAINER_CHECK_IS_EXHAUSTIVE_I_ SOL_DEFAULT_OFF +#endif + #if defined(SOL_FUNCTION_CALL_VALUE_SEMANTICS) #if (SOL_FUNCTION_CALL_VALUE_SEMANTICS != 0) #define SOL_FUNCTION_CALL_VALUE_SEMANTICS_I_ SOL_ON @@ -826,16 +847,16 @@ #define SOL2_CI_I_ SOL_DEFAULT_OFF #endif -#if defined(SOL_C_ASSERT) - #define SOL_USER_C_ASSERT_I_ SOL_ON +#if defined(SOL_ASSERT) + #define SOL_USER_ASSERT_I_ SOL_ON #else - #define SOL_USER_C_ASSERT_I_ SOL_DEFAULT_OFF + #define SOL_USER_ASSERT_I_ SOL_DEFAULT_OFF #endif -#if defined(SOL_M_ASSERT) - #define SOL_USER_M_ASSERT_I_ SOL_ON +#if defined(SOL_ASSERT_MSG) + #define SOL_USER_ASSERT_MSG_I_ SOL_ON #else - #define SOL_USER_M_ASSERT_I_ SOL_DEFAULT_OFF + #define SOL_USER_ASSERT_MSG_I_ SOL_DEFAULT_OFF #endif // beginning of sol/prologue.hpp @@ -1107,7 +1128,7 @@ #include #include -#if SOL_IS_ON(SOL_USE_CXX_LUA) || SOL_IS_ON(SOL_USE_CXX_LUAJIT) +#if SOL_IS_ON(SOL_USING_CXX_LUA) || SOL_IS_ON(SOL_USING_CXX_LUAJIT) struct lua_State; #else extern "C" { @@ -1330,7 +1351,7 @@ namespace sol { typedef ::sol::types<__VA_ARGS__> type; \ }; \ } \ - void a_sol3_detail_function_decl_please_no_collide() + static_assert(true, "") #define SOL_DERIVED_CLASSES(T, ...) \ namespace sol { \ template <> \ @@ -1338,7 +1359,7 @@ namespace sol { typedef ::sol::types<__VA_ARGS__> type; \ }; \ } \ - void a_sol3_detail_function_decl_please_no_collide() + static_assert(true, "") #endif // SOL_FORWARD_HPP // end of sol/forward.hpp @@ -1392,6 +1413,39 @@ namespace sol { template