From 7cd422264768f00e238647f2facdfe9c6ea1feb1 Mon Sep 17 00:00:00 2001 From: Petr Mikheev Date: Fri, 13 May 2022 16:35:49 +0200 Subject: [PATCH] Update sol. Replace combined sol.hpp with loose files. --- CMakeLists.txt | 2 +- extern/sol3.2.2/README.md | 3 - extern/sol3.2.2/sol/sol.hpp | 26674 ---------------- extern/sol3/README.md | 3 + extern/sol3/sol/as_args.hpp | 54 + extern/sol3/sol/as_returns.hpp | 62 + extern/sol3/sol/assert.hpp | 99 + extern/sol3/sol/base_traits.hpp | 123 + extern/sol3/sol/bind_traits.hpp | 553 + extern/sol3/sol/bytecode.hpp | 121 + extern/sol3/sol/call.hpp | 961 + extern/sol3/sol/compatibility.hpp | 51 + extern/sol3/sol/compatibility/compat-5.3.c.h | 900 + extern/sol3/sol/compatibility/compat-5.3.h | 424 + extern/sol3/sol/compatibility/compat-5.4.h | 25 + extern/sol3/sol/compatibility/lua_version.hpp | 218 + extern/sol3/sol/coroutine.hpp | 251 + extern/sol3/sol/debug.hpp | 52 + extern/sol3/sol/demangle.hpp | 192 + extern/sol3/sol/deprecate.hpp | 44 + extern/sol3/sol/detail/build_version.hpp | 232 + extern/sol3/sol/dump_handler.hpp | 77 + extern/sol3/sol/ebco.hpp | 160 + extern/sol3/sol/environment.hpp | 261 + extern/sol3/sol/epilogue.hpp | 39 + extern/sol3/sol/error.hpp | 89 + extern/sol3/sol/error_handler.hpp | 175 + extern/sol3/sol/forward.hpp | 266 + extern/sol3/sol/forward_detail.hpp | 56 + extern/sol3/sol/function.hpp | 142 + extern/sol3/sol/function_result.hpp | 78 + extern/sol3/sol/function_types.hpp | 769 + extern/sol3/sol/function_types_core.hpp | 46 + extern/sol3/sol/function_types_overloaded.hpp | 65 + extern/sol3/sol/function_types_stateful.hpp | 158 + extern/sol3/sol/function_types_stateless.hpp | 385 + extern/sol3/sol/function_types_templated.hpp | 154 + extern/sol3/sol/in_place.hpp | 48 + extern/sol3/sol/inheritance.hpp | 195 + extern/sol3/sol/load_result.hpp | 150 + extern/sol3/sol/lua_table.hpp | 95 + extern/sol3/sol/lua_value.hpp | 162 + extern/sol3/sol/make_reference.hpp | 74 + extern/sol3/sol/metatable.hpp | 203 + extern/sol3/sol/object.hpp | 150 + extern/sol3/sol/object_base.hpp | 86 + extern/sol3/sol/optional.hpp | 83 + extern/sol3/sol/optional_implementation.hpp | 2303 ++ extern/sol3/sol/overload.hpp | 49 + extern/sol3/sol/packaged_coroutine.hpp | 262 + extern/sol3/sol/pairs_iterator.hpp | 275 + extern/sol3/sol/pointer_like.hpp | 102 + extern/sol3/sol/policies.hpp | 98 + extern/sol3/sol/prologue.hpp | 47 + extern/sol3/sol/property.hpp | 151 + extern/sol3/sol/protect.hpp | 53 + extern/sol3/sol/protected_function.hpp | 385 + extern/sol3/sol/protected_function_result.hpp | 233 + extern/sol3/sol/protected_handler.hpp | 108 + extern/sol3/sol/proxy_base.hpp | 68 + extern/sol3/sol/raii.hpp | 162 + extern/sol3/sol/reference.hpp | 900 + extern/sol3/sol/resolve.hpp | 173 + extern/sol3/sol/sol.hpp | 79 + extern/sol3/sol/stack.hpp | 351 + extern/sol3/sol/stack/detail/pairs.hpp | 98 + extern/sol3/sol/stack_check.hpp | 30 + extern/sol3/sol/stack_check_get.hpp | 30 + extern/sol3/sol/stack_check_get_qualified.hpp | 139 + .../sol3/sol/stack_check_get_unqualified.hpp | 186 + extern/sol3/sol/stack_check_qualified.hpp | 89 + extern/sol3/sol/stack_check_unqualified.hpp | 639 + extern/sol3/sol/stack_core.hpp | 1456 + extern/sol3/sol/stack_field.hpp | 279 + extern/sol3/sol/stack_get.hpp | 30 + extern/sol3/sol/stack_get_qualified.hpp | 37 + extern/sol3/sol/stack_get_unqualified.hpp | 1064 + extern/sol3/sol/stack_guard.hpp | 67 + extern/sol3/sol/stack_iterator.hpp | 153 + extern/sol3/sol/stack_pop.hpp | 51 + extern/sol3/sol/stack_probe.hpp | 94 + extern/sol3/sol/stack_proxy.hpp | 64 + extern/sol3/sol/stack_proxy_base.hpp | 96 + extern/sol3/sol/stack_push.hpp | 1382 + extern/sol3/sol/stack_reference.hpp | 314 + extern/sol3/sol/state.hpp | 62 + extern/sol3/sol/state_handling.hpp | 194 + extern/sol3/sol/state_view.hpp | 874 + extern/sol3/sol/string_view.hpp | 45 + extern/sol3/sol/table.hpp | 116 + extern/sol3/sol/table_core.hpp | 733 + extern/sol3/sol/table_iterator.hpp | 114 + extern/sol3/sol/table_proxy.hpp | 337 + extern/sol3/sol/thread.hpp | 189 + extern/sol3/sol/tie.hpp | 98 + extern/sol3/sol/traits.hpp | 739 + extern/sol3/sol/trampoline.hpp | 214 + extern/sol3/sol/tuple.hpp | 93 + extern/sol3/sol/types.hpp | 1496 + extern/sol3/sol/unicode.hpp | 308 + extern/sol3/sol/unique_usertype_traits.hpp | 240 + extern/sol3/sol/unsafe_function.hpp | 170 + extern/sol3/sol/unsafe_function_result.hpp | 180 + extern/sol3/sol/userdata.hpp | 134 + extern/sol3/sol/usertype.hpp | 131 + extern/sol3/sol/usertype_container.hpp | 1562 + extern/sol3/sol/usertype_container_launch.hpp | 432 + extern/sol3/sol/usertype_core.hpp | 214 + extern/sol3/sol/usertype_proxy.hpp | 187 + extern/sol3/sol/usertype_storage.hpp | 1161 + extern/sol3/sol/usertype_traits.hpp | 61 + extern/sol3/sol/variadic_args.hpp | 181 + extern/sol3/sol/variadic_results.hpp | 103 + extern/sol3/sol/version.hpp | 831 + extern/sol3/sol/wrapper.hpp | 280 + 115 files changed, 32108 insertions(+), 26678 deletions(-) delete mode 100644 extern/sol3.2.2/README.md delete mode 100644 extern/sol3.2.2/sol/sol.hpp create mode 100644 extern/sol3/README.md create mode 100644 extern/sol3/sol/as_args.hpp create mode 100644 extern/sol3/sol/as_returns.hpp create mode 100644 extern/sol3/sol/assert.hpp create mode 100644 extern/sol3/sol/base_traits.hpp create mode 100644 extern/sol3/sol/bind_traits.hpp create mode 100644 extern/sol3/sol/bytecode.hpp create mode 100644 extern/sol3/sol/call.hpp create mode 100644 extern/sol3/sol/compatibility.hpp create mode 100644 extern/sol3/sol/compatibility/compat-5.3.c.h create mode 100644 extern/sol3/sol/compatibility/compat-5.3.h create mode 100644 extern/sol3/sol/compatibility/compat-5.4.h create mode 100644 extern/sol3/sol/compatibility/lua_version.hpp create mode 100644 extern/sol3/sol/coroutine.hpp create mode 100644 extern/sol3/sol/debug.hpp create mode 100644 extern/sol3/sol/demangle.hpp create mode 100644 extern/sol3/sol/deprecate.hpp create mode 100644 extern/sol3/sol/detail/build_version.hpp create mode 100644 extern/sol3/sol/dump_handler.hpp create mode 100644 extern/sol3/sol/ebco.hpp create mode 100644 extern/sol3/sol/environment.hpp create mode 100644 extern/sol3/sol/epilogue.hpp create mode 100644 extern/sol3/sol/error.hpp create mode 100644 extern/sol3/sol/error_handler.hpp create mode 100644 extern/sol3/sol/forward.hpp create mode 100644 extern/sol3/sol/forward_detail.hpp create mode 100644 extern/sol3/sol/function.hpp create mode 100644 extern/sol3/sol/function_result.hpp create mode 100644 extern/sol3/sol/function_types.hpp create mode 100644 extern/sol3/sol/function_types_core.hpp create mode 100644 extern/sol3/sol/function_types_overloaded.hpp create mode 100644 extern/sol3/sol/function_types_stateful.hpp create mode 100644 extern/sol3/sol/function_types_stateless.hpp create mode 100644 extern/sol3/sol/function_types_templated.hpp create mode 100644 extern/sol3/sol/in_place.hpp create mode 100644 extern/sol3/sol/inheritance.hpp create mode 100644 extern/sol3/sol/load_result.hpp create mode 100644 extern/sol3/sol/lua_table.hpp create mode 100644 extern/sol3/sol/lua_value.hpp create mode 100644 extern/sol3/sol/make_reference.hpp create mode 100644 extern/sol3/sol/metatable.hpp create mode 100644 extern/sol3/sol/object.hpp create mode 100644 extern/sol3/sol/object_base.hpp create mode 100644 extern/sol3/sol/optional.hpp create mode 100644 extern/sol3/sol/optional_implementation.hpp create mode 100644 extern/sol3/sol/overload.hpp create mode 100644 extern/sol3/sol/packaged_coroutine.hpp create mode 100644 extern/sol3/sol/pairs_iterator.hpp create mode 100644 extern/sol3/sol/pointer_like.hpp create mode 100644 extern/sol3/sol/policies.hpp create mode 100644 extern/sol3/sol/prologue.hpp create mode 100644 extern/sol3/sol/property.hpp create mode 100644 extern/sol3/sol/protect.hpp create mode 100644 extern/sol3/sol/protected_function.hpp create mode 100644 extern/sol3/sol/protected_function_result.hpp create mode 100644 extern/sol3/sol/protected_handler.hpp create mode 100644 extern/sol3/sol/proxy_base.hpp create mode 100644 extern/sol3/sol/raii.hpp create mode 100644 extern/sol3/sol/reference.hpp create mode 100644 extern/sol3/sol/resolve.hpp create mode 100644 extern/sol3/sol/sol.hpp create mode 100644 extern/sol3/sol/stack.hpp create mode 100644 extern/sol3/sol/stack/detail/pairs.hpp create mode 100644 extern/sol3/sol/stack_check.hpp create mode 100644 extern/sol3/sol/stack_check_get.hpp create mode 100644 extern/sol3/sol/stack_check_get_qualified.hpp create mode 100644 extern/sol3/sol/stack_check_get_unqualified.hpp create mode 100644 extern/sol3/sol/stack_check_qualified.hpp create mode 100644 extern/sol3/sol/stack_check_unqualified.hpp create mode 100644 extern/sol3/sol/stack_core.hpp create mode 100644 extern/sol3/sol/stack_field.hpp create mode 100644 extern/sol3/sol/stack_get.hpp create mode 100644 extern/sol3/sol/stack_get_qualified.hpp create mode 100644 extern/sol3/sol/stack_get_unqualified.hpp create mode 100644 extern/sol3/sol/stack_guard.hpp create mode 100644 extern/sol3/sol/stack_iterator.hpp create mode 100644 extern/sol3/sol/stack_pop.hpp create mode 100644 extern/sol3/sol/stack_probe.hpp create mode 100644 extern/sol3/sol/stack_proxy.hpp create mode 100644 extern/sol3/sol/stack_proxy_base.hpp create mode 100644 extern/sol3/sol/stack_push.hpp create mode 100644 extern/sol3/sol/stack_reference.hpp create mode 100644 extern/sol3/sol/state.hpp create mode 100644 extern/sol3/sol/state_handling.hpp create mode 100644 extern/sol3/sol/state_view.hpp create mode 100644 extern/sol3/sol/string_view.hpp create mode 100644 extern/sol3/sol/table.hpp create mode 100644 extern/sol3/sol/table_core.hpp create mode 100644 extern/sol3/sol/table_iterator.hpp create mode 100644 extern/sol3/sol/table_proxy.hpp create mode 100644 extern/sol3/sol/thread.hpp create mode 100644 extern/sol3/sol/tie.hpp create mode 100644 extern/sol3/sol/traits.hpp create mode 100644 extern/sol3/sol/trampoline.hpp create mode 100644 extern/sol3/sol/tuple.hpp create mode 100644 extern/sol3/sol/types.hpp create mode 100644 extern/sol3/sol/unicode.hpp create mode 100644 extern/sol3/sol/unique_usertype_traits.hpp create mode 100644 extern/sol3/sol/unsafe_function.hpp create mode 100644 extern/sol3/sol/unsafe_function_result.hpp create mode 100644 extern/sol3/sol/userdata.hpp create mode 100644 extern/sol3/sol/usertype.hpp create mode 100644 extern/sol3/sol/usertype_container.hpp create mode 100644 extern/sol3/sol/usertype_container_launch.hpp create mode 100644 extern/sol3/sol/usertype_core.hpp create mode 100644 extern/sol3/sol/usertype_proxy.hpp create mode 100644 extern/sol3/sol/usertype_storage.hpp create mode 100644 extern/sol3/sol/usertype_traits.hpp create mode 100644 extern/sol3/sol/variadic_args.hpp create mode 100644 extern/sol3/sol/variadic_results.hpp create mode 100644 extern/sol3/sol/version.hpp create mode 100644 extern/sol3/sol/wrapper.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 500f8a510d..de0469c7c9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -449,7 +449,7 @@ else(USE_LUAJIT) endif(USE_LUAJIT) # C++ library binding to Lua -set(SOL_INCLUDE_DIR ${OpenMW_SOURCE_DIR}/extern/sol3.2.2) +set(SOL_INCLUDE_DIR ${OpenMW_SOURCE_DIR}/extern/sol3) set(SOL_CONFIG_DIR ${OpenMW_SOURCE_DIR}/extern/sol_config) include_directories( diff --git a/extern/sol3.2.2/README.md b/extern/sol3.2.2/README.md deleted file mode 100644 index c831941822..0000000000 --- a/extern/sol3.2.2/README.md +++ /dev/null @@ -1,3 +0,0 @@ -sol/sol.hpp is downloaded from https://github.com/ThePhD/sol2/releases/download/v3.2.2/sol.hpp - -License: MIT diff --git a/extern/sol3.2.2/sol/sol.hpp b/extern/sol3.2.2/sol/sol.hpp deleted file mode 100644 index c25fd549e7..0000000000 --- a/extern/sol3.2.2/sol/sol.hpp +++ /dev/null @@ -1,26674 +0,0 @@ -// The MIT License (MIT) - -// Copyright (c) 2013-2020 Rapptz, ThePhD and contributors - -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -// the Software, and to permit persons to whom the Software is furnished to do so, -// subject to the following conditions: - -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. - -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -// This file was generated with a script. -// Generated 2020-10-03 21:34:24.496436 UTC -// This header was generated with sol v3.2.1 (revision 48eea7b5) -// https://github.com/ThePhD/sol2 - -#ifndef SOL_SINGLE_INCLUDE_HPP -#define SOL_SINGLE_INCLUDE_HPP - -// beginning of sol/sol.hpp - -#ifndef SOL_HPP -#define SOL_HPP - -// beginning of sol/version.hpp - -#include - -#include - -#define SOL_VERSION_MAJOR 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_IS_ON(OP_SYMBOL) ((3 OP_SYMBOL 3) != 0) -#define SOL_IS_OFF(OP_SYMBOL) ((3 OP_SYMBOL 3) == 0) -#define SOL_IS_DEFAULT_ON(OP_SYMBOL) ((3 OP_SYMBOL 3) > 3) -#define SOL_IS_DEFAULT_OFF(OP_SYMBOL) ((3 OP_SYMBOL 3 OP_SYMBOL 3) < 0) - -#define SOL_ON | -#define SOL_OFF ^ -#define SOL_DEFAULT_ON + -#define SOL_DEFAULT_OFF - - -#if defined(_MSC_VER) - #define SOL_COMPILER_CLANG_I_ SOL_OFF - #define SOL_COMPILER_GCC_I_ SOL_OFF - #define SOL_COMPILER_EDG_I_ SOL_OFF - #define SOL_COMPILER_VCXX_I_ SOL_ON -#elif defined(__clang__) - #define SOL_COMPILER_CLANG_I_ SOL_ON - #define SOL_COMPILER_GCC_I_ SOL_OFF - #define SOL_COMPILER_EDG_I_ SOL_OFF - #define SOL_COMPILER_VCXX_I_ SOL_OFF -#elif defined(__GNUC__) - #define SOL_COMPILER_CLANG_I_ SOL_OFF - #define SOL_COMPILER_GCC_I_ SOL_ON - #define SOL_COMPILER_EDG_I_ SOL_OFF - #define SOL_COMPILER_VCXX_I_ SOL_OFF -#else - #define SOL_COMPILER_CLANG_I_ SOL_OFF - #define SOL_COMPILER_GCC_I_ SOL_OFF - #define SOL_COMPILER_EDG_I_ SOL_OFF - #define SOL_COMPILER_VCXX_I_ SOL_OFF -#endif - -#if defined(__MINGW32__) - #define SOL_COMPILER_FRONTEND_MINGW_I_ SOL_ON -#else - #define SOL_COMPILER_FRONTEND_MINGW_I_ SOL_OFF -#endif - -#if SIZE_MAX <= 0xFFFFULL - #define SOL_PLATFORM_X16_I_ SOL_ON - #define SOL_PLATFORM_X86_I_ SOL_OFF - #define SOL_PLATFORM_X64_I_ SOL_OFF -#elif SIZE_MAX <= 0xFFFFFFFFULL - #define SOL_PLATFORM_X16_I_ SOL_OFF - #define SOL_PLATFORM_X86_I_ SOL_ON - #define SOL_PLATFORM_X64_I_ SOL_OFF -#else - #define SOL_PLATFORM_X16_I_ SOL_OFF - #define SOL_PLATFORM_X86_I_ SOL_OFF - #define SOL_PLATFORM_X64_I_ SOL_ON -#endif - -#define SOL_PLATFORM_ARM32_I_ SOL_OFF -#define SOL_PLATFORM_ARM64_I_ SOL_OFF - -#if defined(_WIN32) - #define SOL_PLATFORM_WINDOWS_I_ SOL_ON -#else - #define SOL_PLATFORM_WINDOWS_I_ SOL_OFF -#endif -#if defined(__APPLE__) - #define SOL_PLATFORM_APPLE_I_ SOL_ON -#else - #define SOL_PLATFORM_APPLE_I_ SOL_OFF -#endif -#if defined(__unix__) - #define SOL_PLATFORM_UNIXLIKE_I_ SOL_ON -#else - #define SOL_PLATFORM_UNIXLIKE_I_ SOL_OFF -#endif -#if defined(__linux__) - #define SOL_PLATFORM_LINUXLIKE_I_ SOL_ON -#else - #define SOL_PLATFORM_LINUXLIKE_I_ SOL_OFF -#endif - -#define SOL_PLATFORM_APPLE_IPHONE_I_ SOL_OFF -#define SOL_PLATFORM_BSDLIKE_I_ SOL_OFF - -#if defined(SOL_IN_DEBUG_DETECTED) - #if SOL_IN_DEBUG_DETECTED != 0 - #define SOL_DEBUG_BUILD_I_ SOL_ON - #else - #define SOL_DEBUG_BUILD_I_ SOL_OFF - #endif -#elif !defined(NDEBUG) - #if SOL_IS_ON(SOL_COMPILER_VCXX_I_) && defined(_DEBUG) - #define SOL_DEBUG_BUILD_I_ SOL_ON - #elif (SOL_IS_ON(SOL_COMPILER_CLANG_I_) || SOL_IS_ON(SOL_COMPILER_GCC_I_)) && !defined(__OPTIMIZE__) - #define SOL_DEBUG_BUILD_I_ SOL_ON - #else - #define SOL_DEBUG_BUILD_I_ SOL_OFF - #endif -#else - #define SOL_DEBUG_BUILD_I_ SOL_DEFAULT_OFF -#endif // We are in a debug mode of some sort - -#if defined(SOL_NO_EXCEPTIONS) - #if (SOL_NO_EXCEPTIONS != 0) - #define SOL_EXCEPTIONS_I_ SOL_OFF - #else - #define SOL_EXCEPTIONS_I_ SOL_ON - #endif -#elif SOL_IS_ON(SOL_COMPILER_VCXX_I_) - #if !defined(_CPPUNWIND) - #define SOL_EXCEPTIONS_I_ SOL_OFF - #else - #define SOL_EXCEPTIONS_I_ SOL_ON - #endif -#elif SOL_IS_ON(SOL_COMPILER_CLANG_I_) || SOL_IS_ON(SOL_COMPILER_GCC_I_) - #if !defined(__EXCEPTIONS) - #define SOL_EXCEPTIONS_I_ SOL_OFF - #else - #define SOL_EXCEPTIONS_I_ SOL_ON - #endif -#else - #define SOL_EXCEPTIONS_I_ SOL_DEFAULT_ON -#endif - -#if defined(SOL_NO_RTTI) - #if (SOL_NO_RTTI != 0) - #define SOL_RTTI_I_ SOL_OFF - #else - #define SOL_RTTI_I_ SOL_ON - #endif -#elif SOL_IS_ON(SOL_COMPILER_VCXX_I_) - #if !defined(_CPPRTTI) - #define SOL_RTTI_I_ SOL_OFF - #else - #define SOL_RTTI_I_ SOL_ON - #endif -#elif SOL_IS_ON(SOL_COMPILER_CLANG_I_) || SOL_IS_ON(SOL_COMPILER_GCC_I_) - #if !defined(__GXX_RTTI) - #define SOL_RTTI_I_ SOL_OFF - #else - #define SOL_RTTI_I_ SOL_ON - #endif -#else - #define SOL_RTTI_I_ SOL_DEFAULT_ON -#endif - -#if defined(SOL_NO_THREAD_LOCAL) && (SOL_NO_THREAD_LOCAL != 0) - #define SOL_USE_THREAD_LOCAL_I_ SOL_OFF -#else - #define SOL_USE_THREAD_LOCAL_I_ SOL_DEFAULT_ON -#endif // thread_local keyword is bjorked on some platforms - -#if defined(SOL_ALL_SAFETIES_ON) && (SOL_ALL_SAFETIES_ON != 0) - #define SOL_ALL_SAFETIES_ON_I_ SOL_ON -#else - #define SOL_ALL_SAFETIES_ON_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_SAFE_GETTER) && (SOL_SAFE_GETTER != 0) - #define SOL_SAFE_GETTER_I_ SOL_ON -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON_I_) - #define SOL_SAFE_GETTER_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD_I_) - #define SOL_SAFE_GETTER_I_ SOL_DEFAULT_ON - #else - #define SOL_SAFE_GETTER_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_SAFE_USERTYPE) && (SOL_SAFE_USERTYPE != 0) - #define SOL_SAFE_USERTYPE_I_ SOL_ON -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON_I_) - #define SOL_SAFE_USERTYPE_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD_I_) - #define SOL_SAFE_USERTYPE_I_ SOL_DEFAULT_ON - #else - #define SOL_SAFE_USERTYPE_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_SAFE_REFERENCES) && (SOL_SAFE_REFERENCES != 0) - #define SOL_SAFE_REFERENCES_I_ SOL_ON -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON_I_) - #define SOL_SAFE_REFERENCES_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD_I_) - #define SOL_SAFE_REFERENCES_I_ SOL_DEFAULT_ON - #else - #define SOL_SAFE_REFERENCES_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if (defined(SOL_SAFE_FUNCTIONS) && (SOL_SAFE_FUNCTIONS != 0)) \ - || (defined(SOL_SAFE_FUNCTION_OBJECTS) && (SOL_SAFE_FUNCTION_OBJECTS != 0)) - #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_ON -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON_I_) - #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD_I_) - #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_DEFAULT_ON - #else - #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_SAFE_FUNCTION_CALLS) && (SOL_SAFE_FUNCTION_CALLS != 0) - #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_ON -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON_I_) - #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD_I_) - #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_DEFAULT_ON - #else - #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_SAFE_PROXIES) && (SOL_SAFE_PROXIES != 0) - #define SOL_SAFE_PROXIES_I_ SOL_ON -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON_I_) - #define SOL_SAFE_PROXIES_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD_I_) - #define SOL_SAFE_PROXIES_I_ SOL_DEFAULT_ON - #else - #define SOL_SAFE_PROXIES_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_SAFE_NUMERICS) && (SOL_SAFE_NUMERICS != 0) - #define SOL_SAFE_NUMERICS_I_ SOL_ON -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON_I_) - #define SOL_SAFE_NUMERICS_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD_I_) - #define SOL_SAFE_NUMERICS_I_ SOL_DEFAULT_ON - #else - #define SOL_SAFE_NUMERICS_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_SAFE_STACK_CHECK) && (SOL_SAFE_STACK_CHECK != 0) - #define SOL_SAFE_STACK_CHECK_I_ SOL_ON -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON_I_) - #define SOL_SAFE_STACK_CHECK_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD_I_) - #define SOL_SAFE_STACK_CHECK_I_ SOL_DEFAULT_ON - #else - #define SOL_SAFE_STACK_CHECK_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if (defined(SOL_NO_CHECK_NUMBER_PRECISION) && (SOL_NO_CHECK_NUMBER_PRECISION != 0)) \ - || (defined(SOL_NO_CHECKING_NUMBER_PRECISION) && (SOL_NO_CHECKING_NUMBER_PRECISION != 0)) - #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_OFF -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON_I_) - #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON - #elif SOL_IS_ON(SOL_SAFE_NUMERICS_I_) - #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD_I_) - #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_DEFAULT_ON - #else - #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_STRINGS_ARE_NUMBERS) - #if (SOL_STRINGS_ARE_NUMBERS != 0) - #define SOL_STRINGS_ARE_NUMBERS_I_ SOL_ON - #else - #define SOL_STRINGS_ARE_NUMBERS_I_ SOL_OFF - #endif -#else - #define SOL_STRINGS_ARE_NUMBERS_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_ENABLE_INTEROP) && (SOL_ENABLE_INTEROP != 0) \ - || defined(SOL_USE_INTEROP) && (SOL_USE_INTEROP != 0) - #define SOL_USE_INTEROP_I_ SOL_ON -#else - #define SOL_USE_INTEROP_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_NO_NIL) - #if (SOL_NO_NIL != 0) - #define SOL_NIL_I_ SOL_OFF - #else - #define SOL_NIL_I_ SOL_ON - #endif -#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED) || defined(__OBJC__) || defined(nil) - #define SOL_NIL_I_ SOL_DEFAULT_OFF -#else - #define SOL_NIL_I_ SOL_DEFAULT_ON -#endif - -#if defined(SOL_USERTYPE_TYPE_BINDING_INFO) - #if (SOL_USERTYPE_TYPE_BINDING_INFO != 0) - #define SOL_USERTYPE_TYPE_BINDING_INFO_I_ SOL_ON - #else - #define SOL_USERTYPE_TYPE_BINDING_INFO_I_ SOL_OFF - #endif -#else - #define SOL_USERTYPE_TYPE_BINDING_INFO_I_ SOL_DEFAULT_ON -#endif // We should generate a my_type.__type table with lots of class information for usertypes - -#if defined(SOL_AUTOMAGICAL_TYPES_BY_DEFAULT) - #if (SOL_AUTOMAGICAL_TYPES_BY_DEFAULT != 0) - #define SOL_DEFAULT_AUTOMAGICAL_USERTYPES_I_ SOL_ON - #else - #define SOL_DEFAULT_AUTOMAGICAL_USERTYPES_I_ SOL_OFF - #endif -#elif defined(SOL_DEFAULT_AUTOMAGICAL_USERTYPES) - #if (SOL_DEFAULT_AUTOMAGICAL_USERTYPES != 0) - #define SOL_DEFAULT_AUTOMAGICAL_USERTYPES_I_ SOL_ON - #else - #define SOL_DEFAULT_AUTOMAGICAL_USERTYPES_I_ SOL_OFF - #endif -#else - #define SOL_DEFAULT_AUTOMAGICAL_USERTYPES_I_ SOL_DEFAULT_ON -#endif // make is_automagical on/off by default - -#if defined(SOL_STD_VARIANT) - #if (SOL_STD_VARIANT != 0) - #define SOL_STD_VARIANT_I_ SOL_ON - #else - #define SOL_STD_VARIANT_I_ SOL_OFF - #endif -#else - #if SOL_IS_ON(SOL_COMPILER_CLANG_I_) && SOL_IS_ON(SOL_PLATFORM_APPLE_I_) - #if defined(__has_include) - #if __has_include() - #define SOL_STD_VARIANT_I_ SOL_ON - #else - #define SOL_STD_VARIANT_I_ SOL_OFF - #endif - #else - #define SOL_STD_VARIANT_I_ SOL_OFF - #endif - #else - #define SOL_STD_VARIANT_I_ SOL_DEFAULT_ON - #endif -#endif // make is_automagical on/off by default - -#if defined(SOL_NOEXCEPT_FUNCTION_TYPE) - #if (SOL_NOEXCEPT_FUNCTION_TYPE != 0) - #define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_ON - #else - #define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_OFF - #endif -#else - #if defined(__cpp_noexcept_function_type) - #define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_ON - #elif SOL_IS_ON(SOL_COMPILER_VCXX_I_) && (defined(_MSVC_LANG) && (_MSVC_LANG < 201403L)) - // There is a bug in the VC++ compiler?? - // on /std:c++latest under x86 conditions (VS 15.5.2), - // compiler errors are tossed for noexcept markings being on function types - // that are identical in every other way to their non-noexcept marked types function types... - // VS 2019: There is absolutely a bug. - #define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_OFF - #else - #define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_DEFAULT_ON - #endif -#endif // noexcept is part of a function's type - -#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 - #define SOL_ID_SIZE_I_ SOL_ID_SIZE -#else - #define SOL_ID_SIZE_I_ 512 -#endif - -#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 -#else - #define SOL_FILE_ID_SIZE_I_ 2048 -#endif - -#if defined(SOL_PRINT_ERRORS) - #if (SOL_PRINT_ERRORS != 0) - #define SOL_PRINT_ERRORS_I_ SOL_ON - #else - #define SOL_PRINT_ERRORS_I_ SOL_OFF - #endif -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON_I_) - #define SOL_PRINT_ERRORS_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD_I_) - #define SOL_PRINT_ERRORS_I_ SOL_DEFAULT_ON - #else - #define SOL_PRINT_ERRORS_I_ SOL_OFF - #endif -#endif - -#if defined(SOL_DEFAULT_PASS_ON_ERROR) && (SOL_DEFAULT_PASS_ON_ERROR != 0) - #define SOL_DEFAULT_PASS_ON_ERROR_I_ SOL_ON -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON_I_) - #define SOL_DEFAULT_PASS_ON_ERROR_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD_I_) - #define SOL_DEFAULT_PASS_ON_ERROR_I_ SOL_DEFAULT_ON - #else - #define SOL_DEFAULT_PASS_ON_ERROR_I_ SOL_OFF - #endif -#endif - -#if defined(SOL_USING_CXX_LUA) - #if (SOL_USING_CXX_LUA != 0) - #define SOL_USE_CXX_LUA_I_ SOL_ON - #else - #define SOL_USE_CXX_LUA_I_ SOL_OFF - #endif -#elif defined(SOL_USE_CXX_LUA) - #if (SOL_USE_CXX_LUA != 0) - #define SOL_USE_CXX_LUA_I_ SOL_ON - #else - #define SOL_USE_CXX_LUA_I_ SOL_OFF - #endif -#else - #define SOL_USE_CXX_LUA_I_ SOL_OFF -#endif - -#if defined(SOL_USING_CXX_LUAJIT) - #if (SOL_USING_CXX_LUA != 0) - #define SOL_USE_CXX_LUAJIT_I_ SOL_ON - #else - #define SOL_USE_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 - #else - #define SOL_USE_CXX_LUAJIT_I_ SOL_OFF - #endif -#else - #define SOL_USE_CXX_LUAJIT_I_ SOL_OFF -#endif - -#if defined(SOL_NO_LUA_HPP) - #if (SOL_NO_LUA_HPP != 0) - #define SOL_USE_LUA_HPP_I_ SOL_OFF - #else - #define SOL_USE_LUA_HPP_I_ SOL_ON - #endif -#elif defined(SOL_USING_CXX_LUA) - #define SOL_USE_LUA_HPP_I_ SOL_OFF -#elif defined(__has_include) - #if __has_include() - #define SOL_USE_LUA_HPP_I_ SOL_ON - #else - #define SOL_USE_LUA_HPP_I_ SOL_OFF - #endif -#else - #define SOL_USE_LUA_HPP_I_ SOL_DEFAULT_ON -#endif - -#if defined(SOL_CONTAINERS_START) - #define SOL_CONTAINER_START_INDEX_I_ SOL_CONTAINERS_START -#elif defined(SOL_CONTAINERS_START_INDEX) - #define SOL_CONTAINER_START_INDEX_I_ SOL_CONTAINERS_START_INDEX -#elif defined(SOL_CONTAINER_START_INDEX) - #define SOL_CONTAINER_START_INDEX_I_ SOL_CONTAINER_START_INDEX -#else - #define SOL_CONTAINER_START_INDEX_I_ 1 -#endif - -#if defined (SOL_NO_MEMORY_ALIGNMENT) - #if (SOL_NO_MEMORY_ALIGNMENT != 0) - #define SOL_ALIGN_MEMORY_I_ SOL_OFF - #else - #define SOL_ALIGN_MEMORY_I_ SOL_ON - #endif -#else - #define SOL_ALIGN_MEMORY_I_ SOL_DEFAULT_ON -#endif - -#if defined(SOL_USE_BOOST) - #if (SOL_USE_BOOST != 0) - #define SOL_USE_BOOST_I_ SOL_ON - #else - #define SOL_USE_BOOST_I_ SOL_OFF - #endif -#else - #define SOL_USE_BOOST_I_ SOL_OFF -#endif - -#if defined(SOL_USE_UNSAFE_BASE_LOOKUP) - #if (SOL_USE_UNSAFE_BASE_LOOKUP != 0) - #define SOL_USE_UNSAFE_BASE_LOOKUP_I_ SOL_ON - #else - #define SOL_USE_UNSAFE_BASE_LOOKUP_I_ SOL_OFF - #endif -#else - #define SOL_USE_UNSAFE_BASE_LOOKUP_I_ SOL_OFF -#endif - -#if defined(SOL_INSIDE_UNREAL) - #if (SOL_INSIDE_UNREAL != 0) - #define SOL_INSIDE_UNREAL_ENGINE_I_ SOL_ON - #else - #define SOL_INSIDE_UNREAL_ENGINE_I_ SOL_OFF - #endif -#else - #if defined(UE_BUILD_DEBUG) || defined(UE_BUILD_DEVELOPMENT) || defined(UE_BUILD_TEST) || defined(UE_BUILD_SHIPPING) || defined(UE_SERVER) - #define SOL_INSIDE_UNREAL_ENGINE_I_ SOL_ON - #else - #define SOL_INSIDE_UNREAL_ENGINE_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_NO_COMPAT) - #if (SOL_NO_COMPAT != 0) - #define SOL_USE_COMPATIBILITY_LAYER_I_ SOL_OFF - #else - #define SOL_USE_COMPATIBILITY_LAYER_I_ SOL_ON - #endif -#else - #define SOL_USE_COMPATIBILITY_LAYER_I_ SOL_DEFAULT_ON -#endif - -#if defined(SOL_GET_FUNCTION_POINTER_UNSAFE) - #if (SOL_GET_FUNCTION_POINTER_UNSAFE != 0) - #define SOL_GET_FUNCTION_POINTER_UNSAFE_I_ SOL_ON - #else - #define SOL_GET_FUNCTION_POINTER_UNSAFE_I_ SOL_OFF - #endif -#else - #define SOL_GET_FUNCTION_POINTER_UNSAFE_I_ SOL_DEFAULT_OFF -#endif - -#if SOL_IS_ON(SOL_COMPILER_FRONTEND_MINGW_I_) && defined(__GNUC__) && (__GNUC__ < 6) - // MinGW is off its rocker in some places... - #define SOL_MINGW_CCTYPE_IS_POISONED_I_ SOL_ON -#else - #define SOL_MINGW_CCTYPE_IS_POISONED_I_ SOL_DEFAULT_OFF -#endif - -// end of sol/version.hpp - -#if SOL_IS_ON(SOL_INSIDE_UNREAL_ENGINE_I_) -#ifdef check -#pragma push_macro("check") -#undef check -#endif -#endif // Unreal Engine 4 Bullshit - -#if SOL_IS_ON(SOL_COMPILER_GCC_I_) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wshadow" -#pragma GCC diagnostic ignored "-Wconversion" -#if __GNUC__ > 6 -#pragma GCC diagnostic ignored "-Wnoexcept-type" -#endif -#elif SOL_IS_ON(SOL_COMPILER_CLANG_I_) -#elif SOL_IS_ON(SOL_COMPILER_VCXX_I_) -#pragma warning(push) -#pragma warning(disable : 4505) // unreferenced local function has been removed GEE THANKS -#endif // clang++ vs. g++ vs. VC++ - -// beginning of sol/forward.hpp - -#ifndef SOL_FORWARD_HPP -#define SOL_FORWARD_HPP - -#include -#include -#include - -#if SOL_IS_ON(SOL_USE_CXX_LUA_I_) || SOL_IS_ON(SOL_USE_CXX_LUAJIT_I_) -struct lua_State; -#else -extern "C" { -struct lua_State; -} -#endif // C++ Mangling for Lua vs. Not - -namespace sol { - - enum class type; - - class stateless_reference; - template - class basic_reference; - using reference = basic_reference; - using main_reference = basic_reference; - class stateless_stack_reference; - class stack_reference; - - template - class basic_bytecode; - - struct lua_value; - - struct proxy_base_tag; - template - struct proxy_base; - template - struct table_proxy; - - template - class basic_table_core; - template - using table_core = basic_table_core; - template - using main_table_core = basic_table_core; - template - using stack_table_core = basic_table_core; - template - using basic_table = basic_table_core; - using table = table_core; - using global_table = table_core; - using main_table = main_table_core; - using main_global_table = main_table_core; - using stack_table = stack_table_core; - using stack_global_table = stack_table_core; - - template - struct basic_lua_table; - using lua_table = basic_lua_table; - using stack_lua_table = basic_lua_table; - - template - class basic_usertype; - template - using usertype = basic_usertype; - template - using stack_usertype = basic_usertype; - - template - class basic_metatable; - using metatable = basic_metatable; - using stack_metatable = basic_metatable; - - template - struct basic_environment; - using environment = basic_environment; - using main_environment = basic_environment; - using stack_environment = basic_environment; - - template - class basic_function; - template - class basic_protected_function; - using unsafe_function = basic_function; - using safe_function = basic_protected_function; - using main_unsafe_function = basic_function; - using main_safe_function = basic_protected_function; - using stack_unsafe_function = basic_function; - using stack_safe_function = basic_protected_function; - using stack_aligned_unsafe_function = basic_function; - using stack_aligned_safe_function = basic_protected_function; - using protected_function = safe_function; - using main_protected_function = main_safe_function; - using stack_protected_function = stack_safe_function; - using stack_aligned_protected_function = stack_aligned_safe_function; -#if SOL_IS_ON(SOL_SAFE_FUNCTION_OBJECTS_I_) - using function = protected_function; - using main_function = main_protected_function; - using stack_function = stack_protected_function; - using stack_aligned_function = stack_aligned_safe_function; -#else - using function = unsafe_function; - using main_function = main_unsafe_function; - using stack_function = stack_unsafe_function; - using stack_aligned_function = stack_aligned_unsafe_function; -#endif - using stack_aligned_stack_handler_function = basic_protected_function; - - struct unsafe_function_result; - struct protected_function_result; - using safe_function_result = protected_function_result; -#if SOL_IS_ON(SOL_SAFE_FUNCTION_OBJECTS_I_) - using function_result = safe_function_result; -#else - using function_result = unsafe_function_result; -#endif - - template - class basic_object_base; - template - class basic_object; - template - class basic_userdata; - template - class basic_lightuserdata; - template - class basic_coroutine; - template - class basic_thread; - - using object = basic_object; - using userdata = basic_userdata; - using lightuserdata = basic_lightuserdata; - using thread = basic_thread; - using coroutine = basic_coroutine; - using main_object = basic_object; - using main_userdata = basic_userdata; - using main_lightuserdata = basic_lightuserdata; - using main_coroutine = basic_coroutine; - using stack_object = basic_object; - using stack_userdata = basic_userdata; - using stack_lightuserdata = basic_lightuserdata; - using stack_thread = basic_thread; - using stack_coroutine = basic_coroutine; - - struct stack_proxy_base; - struct stack_proxy; - struct variadic_args; - struct variadic_results; - struct stack_count; - struct this_state; - struct this_main_state; - struct this_environment; - - class state_view; - class state; - - template - struct as_table_t; - template - struct as_container_t; - template - struct nested; - template - struct light; - template - struct user; - template - struct as_args_t; - template - struct protect_t; - template - struct policy_wrapper; - - template - struct usertype_traits; - template - struct unique_usertype_traits; - - template - struct types { - typedef std::make_index_sequence indices; - static constexpr std::size_t size() { - return sizeof...(Args); - } - }; - - template - struct derive : std::false_type { - typedef types<> type; - }; - - template - struct base : std::false_type { - typedef types<> type; - }; - - template - struct weak_derive { - static bool value; - }; - - template - bool weak_derive::value = false; - - namespace stack { - struct record; - } - -#if SOL_IS_OFF(SOL_USE_BOOST_I_) - template - class optional; - - template - class optional; -#endif - - using check_handler_type = int(lua_State*, int, type, type, const char*); - -} // namespace sol - -#define SOL_BASE_CLASSES(T, ...) \ - namespace sol { \ - template <> \ - struct base : std::true_type { \ - typedef ::sol::types<__VA_ARGS__> type; \ - }; \ - } \ - void a_sol3_detail_function_decl_please_no_collide() -#define SOL_DERIVED_CLASSES(T, ...) \ - namespace sol { \ - template <> \ - struct derive : std::true_type { \ - typedef ::sol::types<__VA_ARGS__> type; \ - }; \ - } \ - void a_sol3_detail_function_decl_please_no_collide() - -#endif // SOL_FORWARD_HPP -// end of sol/forward.hpp - -// beginning of sol/forward_detail.hpp - -#ifndef SOL_FORWARD_DETAIL_HPP -#define SOL_FORWARD_DETAIL_HPP - -// beginning of sol/traits.hpp - -// beginning of sol/tuple.hpp - -// beginning of sol/base_traits.hpp - -#include - -namespace sol { - namespace detail { - struct unchecked_t {}; - const unchecked_t unchecked = unchecked_t{}; - } // namespace detail - - namespace meta { - using sfinae_yes_t = std::true_type; - using sfinae_no_t = std::false_type; - - template - using void_t = void; - - template - using unqualified = std::remove_cv>; - - template - using unqualified_t = typename unqualified::type; - - namespace meta_detail { - template - struct unqualified_non_alias : unqualified {}; - - template