From c467671ae8b6ec161c17e86f3383fd0625f755b8 Mon Sep 17 00:00:00 2001 From: Clyne Sullivan Date: Fri, 19 Aug 2022 19:48:10 -0400 Subject: remove sol2 (will re-add as submodule) --- lib/sol2/single/CMakeLists.txt | 75 - lib/sol2/single/include/sol/forward.hpp | 482 - lib/sol2/single/include/sol/sol.hpp | 25906 ------------------------------ lib/sol2/single/single.py | 268 - 4 files changed, 26731 deletions(-) delete mode 100644 lib/sol2/single/CMakeLists.txt delete mode 100644 lib/sol2/single/include/sol/forward.hpp delete mode 100644 lib/sol2/single/include/sol/sol.hpp delete mode 100644 lib/sol2/single/single.py (limited to 'lib/sol2/single') diff --git a/lib/sol2/single/CMakeLists.txt b/lib/sol2/single/CMakeLists.txt deleted file mode 100644 index c5bd0bf..0000000 --- a/lib/sol2/single/CMakeLists.txt +++ /dev/null @@ -1,75 +0,0 @@ -# # # # sol3 -# The MIT License (MIT) -# -# Copyright (c) 2013-2019 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. - -# # # # sol3, single -# # # Required minimum version statement -cmake_minimum_required(VERSION 3.5.0) - -# single header files -file(GLOB SOL2_SINGLE_HEADER_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/include/**/*.hpp) -source_group(sol2_single FILES ${SOL2_SINGLE_HEADER_SOURCES}) - -# # # sol3 Library, single -# # Add a target for sol3's library to be included by external users -# # single version -add_library(sol2_single INTERFACE) -add_library(sol2::sol2_single ALIAS sol2_single) -target_sources(sol2_single INTERFACE ${SOL2_SINGLE_HEADER_SOURCES}) -set_target_properties(sol2_single - PROPERTIES - EXPORT_NAME sol2::sol2_single) -target_include_directories(sol2_single INTERFACE - $ - $) - -# # # sol3 single generation header -# generate the single header if we can find the python3 interpreter -if (SOL2_GENERATE_SINGLE) - find_package(PythonInterp 3) - - if (NOT PYTHONINTERP_FOUND) - message(FATAL_ERROR "sol2 single header cannot be generated as python 3 has not been found: install or set the python 3 interpreter to generate the single header") - endif() - - # to generate, need all of the existing header files - file(GLOB sol2_generated_header_sources ${CMAKE_CURRENT_SOURCE_DIR}/../include/**/*.*) - add_custom_command( - COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/include/sol" - COMMAND ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/single.py" --input "${CMAKE_CURRENT_SOURCE_DIR}/../include" --output "${CMAKE_CURRENT_BINARY_DIR}/include/sol/sol.hpp" - DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/single.py" "${sol2_generated_header_sources}" - OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/include/sol/sol.hpp" "${CMAKE_CURRENT_BINARY_DIR}/include/sol/forward.hpp") - add_custom_target(sol2_single_header_generator ALL - DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/single.py" - "${CMAKE_CURRENT_BINARY_DIR}/include/sol/sol.hpp" "${CMAKE_CURRENT_BINARY_DIR}/include/sol/forward.hpp" - "${sol2_generated_header_sources}") - - # # # sol3 generated single header library - add_library(sol2_single_generated INTERFACE) - add_library(sol2::sol2_single_generated ALIAS sol2_single_generated) - set_target_properties(sol2_single_generated - PROPERTIES - EXPORT_NAME sol2::sol2_single_generated - INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_BINARY_DIR}/include") - add_dependencies(sol2_single_generated sol2_single_header_generator) - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/include/sol/sol.hpp" "${CMAKE_CURRENT_BINARY_DIR}/include/sol/forward.hpp" - DESTINATION include/sol/single/sol) -endif() diff --git a/lib/sol2/single/include/sol/forward.hpp b/lib/sol2/single/include/sol/forward.hpp deleted file mode 100644 index f8fb88e..0000000 --- a/lib/sol2/single/include/sol/forward.hpp +++ /dev/null @@ -1,482 +0,0 @@ -// The MIT License (MIT) - -// Copyright (c) 2013-2019 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 2019-08-28 04:16:59.509251 UTC -// This header was generated with sol (revision ) -// https://github.com/ThePhD/sol2 - -#ifndef SOL_SINGLE_INCLUDE_FORWARD_HPP -#define SOL_SINGLE_INCLUDE_FORWARD_HPP - -// beginning of sol/forward.hpp - -#ifndef SOL_FORWARD_HPP -#define SOL_FORWARD_HPP - -// beginning of sol/feature_test.hpp - -#if (defined(__cplusplus) && __cplusplus == 201703L) || (defined(_MSC_VER) && _MSC_VER > 1900 && ((defined(_HAS_CXX17) && _HAS_CXX17 == 1) || (defined(_MSVC_LANG) && (_MSVC_LANG > 201402L)))) -#ifndef SOL_CXX17_FEATURES -#define SOL_CXX17_FEATURES 1 -#endif // C++17 features macro -#endif // C++17 features check - -#if defined(SOL_CXX17_FEATURES) && SOL_CXX17_FEATURES -#if defined(__cpp_noexcept_function_type) || ((defined(_MSC_VER) && _MSC_VER > 1911) && (defined(_MSVC_LANG) && ((_MSVC_LANG >= 201403L)))) -#ifndef SOL_NOEXCEPT_FUNCTION_TYPE -#define SOL_NOEXCEPT_FUNCTION_TYPE 1 -#endif // noexcept is part of a function's type -#endif // compiler-specific checks -#if defined(__clang__) && defined(__APPLE__) -#if defined(__has_include) -#if __has_include() -#define SOL_STD_VARIANT 1 -#endif // has include nonsense -#endif // __has_include -#else -#define SOL_STD_VARIANT 1 -#endif // Clang screws up variant -#endif // C++17 only - -// beginning of sol/config.hpp - -#ifdef _MSC_VER - #if defined(_DEBUG) && !defined(NDEBUG) - #ifndef SOL_IN_DEBUG_DETECTED - #define SOL_IN_DEBUG_DETECTED 1 - #endif - #endif // VC++ Debug macros - - #if !defined(_CPPUNWIND) - #if !defined(SOL_NO_EXCEPTIONS) - #define SOL_NO_EXCEPTIONS 1 - #endif - #endif // Automatic Exceptions - - #if !defined(_CPPRTTI) - #if !defined(SOL_NO_RTTI) - #define SOL_NO_RTTI 1 - #endif - #endif // Automatic RTTI -#elif defined(__GNUC__) || defined(__clang__) - - #if !defined(NDEBUG) && !defined(__OPTIMIZE__) - #if !defined(SOL_IN_DEBUG_DETECTED) - #define SOL_IN_DEBUG_DETECTED 1 - #endif - #endif // Not Debug && g++ optimizer flag - - #if !defined(__EXCEPTIONS) - #if !defined(SOL_NO_EXCEPTIONS) - #define SOL_NO_EXCEPTIONS 1 - #endif - #endif // No Exceptions - - #if !defined(__GXX_RTTI) - #if !defined(SOL_NO_RTTI) - #define SOL_NO_RTTI 1 - #endif - #endif // No RTTI - -#endif // vc++ || clang++/g++ - -#if defined(SOL_CHECK_ARGUMENTS) && SOL_CHECK_ARGUMENTS - #if defined(SOL_ALL_SAFETIES_ON) - #define SOL_ALL_SAFETIES_ON 1 - #endif // turn all the safeties on -#endif // Compatibility define - -#if defined(SOL_ALL_SAFETIES_ON) && SOL_ALL_SAFETIES_ON - - // Checks low-level getter function - // (and thusly, affects nearly entire framework) - #if !defined(SOL_SAFE_GETTER) - #define SOL_SAFE_GETTER 1 - #endif - - // Checks access on usertype functions - // local my_obj = my_type.new() - // my_obj.my_member_function() - // -- bad syntax and crash - #if !defined(SOL_SAFE_USERTYPE) - #define SOL_SAFE_USERTYPE 1 - #endif - - // Checks sol::reference derived boundaries - // sol::function ref(L, 1); - // sol::userdata sref(L, 2); - #if !defined(SOL_SAFE_REFERENCES) - #define SOL_SAFE_REFERENCES 1 - #endif - - // Changes all typedefs of sol::function to point to the - // protected_function version, instead of unsafe_function - #if !defined(SOL_SAFE_FUNCTION) - #define SOL_SAFE_FUNCTION 1 - #endif - - // Checks function parameters and - // returns upon call into/from Lua - // local a = 1 - // local b = "woof" - // my_c_function(a, b) - #if !defined(SOL_SAFE_FUNCTION_CALLS) - #define SOL_SAFE_FUNCTION_CALLS 1 - #endif - - // Checks conversions - // int v = lua["bark"]; - // int v2 = my_sol_function(); - #if !defined(SOL_SAFE_PROXIES) - #define SOL_SAFE_PROXIES 1 - #endif - - // Check overflowing number conversions - // for things like 64 bit integers that don't fit in a typical lua_Number - // for Lua 5.1 and 5.2 - #if !defined(SOL_SAFE_NUMERICS) - #define SOL_SAFE_NUMERICS 1 - #endif - - // Turn off Number Precision Checks - // if this is defined, we do not do range - // checks on integers / unsigned integers that might - // be bigger than what Lua can represent - #if !defined(SOL_NO_CHECK_NUMBER_PRECISION) - // off by default - #define SOL_NO_CHECK_NUMBER_PRECISION 0 - #endif - - // Print any exceptions / errors that occur - // in debug mode to the default error stream / console - #if !defined(SOL_SAFE_STACK_CHECK) - #define SOL_SAFE_STACK_CHECK 1 - #endif - -#endif // Turn on Safety for all if top-level macro is defined - -#if defined(SOL_IN_DEBUG_DETECTED) && SOL_IN_DEBUG_DETECTED - - #if !defined(SOL_SAFE_REFERENCES) - // Ensure that references are forcefully type-checked upon construction - #define SOL_SAFE_REFERENCES 1 - #endif - - // Safe usertypes checks for errors such as - // obj = my_type.new() - // obj.f() -- note the '.' instead of ':' - // usertypes should be safe no matter what - #if !defined(SOL_SAFE_USERTYPE) - #define SOL_SAFE_USERTYPE 1 - #endif - - #if !defined(SOL_SAFE_FUNCTION_CALLS) - // Function calls from Lua should be automatically safe in debug mode - #define SOL_SAFE_FUNCTION_CALLS 1 - #endif - - // Print any exceptions / errors that occur - // in debug mode to the default error stream / console - #if !defined(SOL_PRINT_ERRORS) - #define SOL_PRINT_ERRORS 1 - #endif - - // Print any exceptions / errors that occur - // in debug mode to the default error stream / console - #if !defined(SOL_SAFE_STACK_CHECK) - #define SOL_SAFE_STACK_CHECK 1 - #endif - -#endif // DEBUG: Turn on all debug safety features for VC++ / g++ / clang++ and similar - -#if !defined(SOL_PRINT_ERRORS) -#define SOL_PRINT_ERRORS 0 -#endif - -#if !defined(SOL_DEFAULT_PASS_ON_ERROR) -#define SOL_DEFAULT_PASS_ON_ERROR 0 -#endif - -#if !defined(SOL_ENABLE_INTEROP) -#define SOL_ENABLE_INTEROP 0 -#endif - -#if defined(__MAC_OS_X_VERSION_MAX_ALLOWED) || defined(__OBJC__) || defined(nil) -#if !defined(SOL_NO_NIL) -#define SOL_NO_NIL 1 -#endif -#endif // avoiding nil defines / keywords - -#if defined(SOL_USE_BOOST) && SOL_USE_BOOST -#if !defined(SOL_UNORDERED_MAP_COMPATIBLE_HASH) -#define SOL_UNORDERED_MAP_COMPATIBLE_HASH 1 -#endif // SOL_UNORDERED_MAP_COMPATIBLE_HASH -#endif - -#ifndef SOL_STACK_STRING_OPTIMIZATION_SIZE -#define SOL_STACK_STRING_OPTIMIZATION_SIZE 1024 -#endif // Optimized conversion routines using a KB or so off the stack - -#if !defined(SOL_SAFE_STACK_CHECK) -#define SOL_SAFE_STACK_CHECK 0 -#endif // use luaL_checkstack to check stack overflow / overrun - -// end of sol/config.hpp - -// beginning of sol/config_setup.hpp - -// end of sol/config_setup.hpp - -// end of sol/feature_test.hpp - -#include -#include - -#if defined(SOL_USING_CXX_LUA) && SOL_USING_CXX_LUA -struct lua_State; -#else -extern "C" { - struct lua_State; -} -#endif // C++ Mangling for Lua vs. Not - -namespace sol { - - 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 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 defined(SOL_SAFE_FUNCTION) && SOL_SAFE_FUNCTION - using function = protected_function; - using main_function = main_protected_function; - using stack_function = stack_protected_function; -#else - using function = unsafe_function; - using main_function = main_unsafe_function; - using stack_function = stack_unsafe_function; -#endif - using stack_aligned_function = stack_aligned_unsafe_function; - 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 defined(SOL_SAFE_FUNCTION) && SOL_SAFE_FUNCTION - 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 !defined(SOL_USE_BOOST) || (SOL_USE_BOOST == 0) - template - class optional; - - template - class optional; -#endif - -} // 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 - -#endif // SOL_SINGLE_INCLUDE_FORWARD_HPP diff --git a/lib/sol2/single/include/sol/sol.hpp b/lib/sol2/single/include/sol/sol.hpp deleted file mode 100644 index 440c058..0000000 --- a/lib/sol2/single/include/sol/sol.hpp +++ /dev/null @@ -1,25906 +0,0 @@ -// The MIT License (MIT) - -// Copyright (c) 2013-2019 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 2019-08-28 04:16:58.879902 UTC -// This header was generated with sol (revision ) -// 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 - -#if defined(UE_BUILD_DEBUG) || defined(UE_BUILD_DEVELOPMENT) || defined(UE_BUILD_TEST) || defined(UE_BUILD_SHIPPING) || defined(UE_SERVER) -#define SOL_INSIDE_UNREAL -#ifdef check -#pragma push_macro("check") -#undef check -#endif -#endif // Unreal Engine 4 Bullshit - -#if defined(__GNUC__) -#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 defined(__clang__) -#elif defined _MSC_VER -#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 - -// beginning of sol/feature_test.hpp - -#if (defined(__cplusplus) && __cplusplus == 201703L) || (defined(_MSC_VER) && _MSC_VER > 1900 && ((defined(_HAS_CXX17) && _HAS_CXX17 == 1) || (defined(_MSVC_LANG) && (_MSVC_LANG > 201402L)))) -#ifndef SOL_CXX17_FEATURES -#define SOL_CXX17_FEATURES 1 -#endif // C++17 features macro -#endif // C++17 features check - -#if defined(SOL_CXX17_FEATURES) && SOL_CXX17_FEATURES -#if defined(__cpp_noexcept_function_type) || ((defined(_MSC_VER) && _MSC_VER > 1911) && (defined(_MSVC_LANG) && ((_MSVC_LANG >= 201403L)))) -#ifndef SOL_NOEXCEPT_FUNCTION_TYPE -#define SOL_NOEXCEPT_FUNCTION_TYPE 1 -#endif // noexcept is part of a function's type -#endif // compiler-specific checks -#if defined(__clang__) && defined(__APPLE__) -#if defined(__has_include) -#if __has_include() -#define SOL_STD_VARIANT 1 -#endif // has include nonsense -#endif // __has_include -#else -#define SOL_STD_VARIANT 1 -#endif // Clang screws up variant -#endif // C++17 only - -// beginning of sol/config.hpp - -#ifdef _MSC_VER - #if defined(_DEBUG) && !defined(NDEBUG) - #ifndef SOL_IN_DEBUG_DETECTED - #define SOL_IN_DEBUG_DETECTED 1 - #endif - #endif // VC++ Debug macros - - #if !defined(_CPPUNWIND) - #if !defined(SOL_NO_EXCEPTIONS) - #define SOL_NO_EXCEPTIONS 1 - #endif - #endif // Automatic Exceptions - - #if !defined(_CPPRTTI) - #if !defined(SOL_NO_RTTI) - #define SOL_NO_RTTI 1 - #endif - #endif // Automatic RTTI -#elif defined(__GNUC__) || defined(__clang__) - - #if !defined(NDEBUG) && !defined(__OPTIMIZE__) - #if !defined(SOL_IN_DEBUG_DETECTED) - #define SOL_IN_DEBUG_DETECTED 1 - #endif - #endif // Not Debug && g++ optimizer flag - - #if !defined(__EXCEPTIONS) - #if !defined(SOL_NO_EXCEPTIONS) - #define SOL_NO_EXCEPTIONS 1 - #endif - #endif // No Exceptions - - #if !defined(__GXX_RTTI) - #if !defined(SOL_NO_RTTI) - #define SOL_NO_RTTI 1 - #endif - #endif // No RTTI - -#endif // vc++ || clang++/g++ - -#if defined(SOL_CHECK_ARGUMENTS) && SOL_CHECK_ARGUMENTS - #if defined(SOL_ALL_SAFETIES_ON) - #define SOL_ALL_SAFETIES_ON 1 - #endif // turn all the safeties on -#endif // Compatibility define - -#if defined(SOL_ALL_SAFETIES_ON) && SOL_ALL_SAFETIES_ON - - // Checks low-level getter function - // (and thusly, affects nearly entire framework) - #if !defined(SOL_SAFE_GETTER) - #define SOL_SAFE_GETTER 1 - #endif - - // Checks access on usertype functions - // local my_obj = my_type.new() - // my_obj.my_member_function() - // -- bad syntax and crash - #if !defined(SOL_SAFE_USERTYPE) - #define SOL_SAFE_USERTYPE 1 - #endif - - // Checks sol::reference derived boundaries - // sol::function ref(L, 1); - // sol::userdata sref(L, 2); - #if !defined(SOL_SAFE_REFERENCES) - #define SOL_SAFE_REFERENCES 1 - #endif - - // Changes all typedefs of sol::function to point to the - // protected_function version, instead of unsafe_function - #if !defined(SOL_SAFE_FUNCTION) - #define SOL_SAFE_FUNCTION 1 - #endif - - // Checks function parameters and - // returns upon call into/from Lua - // local a = 1 - // local b = "woof" - // my_c_function(a, b) - #if !defined(SOL_SAFE_FUNCTION_CALLS) - #define SOL_SAFE_FUNCTION_CALLS 1 - #endif - - // Checks conversions - // int v = lua["bark"]; - // int v2 = my_sol_function(); - #if !defined(SOL_SAFE_PROXIES) - #define SOL_SAFE_PROXIES 1 - #endif - - // Check overflowing number conversions - // for things like 64 bit integers that don't fit in a typical lua_Number - // for Lua 5.1 and 5.2 - #if !defined(SOL_SAFE_NUMERICS) - #define SOL_SAFE_NUMERICS 1 - #endif - - // Turn off Number Precision Checks - // if this is defined, we do not do range - // checks on integers / unsigned integers that might - // be bigger than what Lua can represent - #if !defined(SOL_NO_CHECK_NUMBER_PRECISION) - // off by default - #define SOL_NO_CHECK_NUMBER_PRECISION 0 - #endif - - // Print any exceptions / errors that occur - // in debug mode to the default error stream / console - #if !defined(SOL_SAFE_STACK_CHECK) - #define SOL_SAFE_STACK_CHECK 1 - #endif - -#endif // Turn on Safety for all if top-level macro is defined - -#if defined(SOL_IN_DEBUG_DETECTED) && SOL_IN_DEBUG_DETECTED - - #if !defined(SOL_SAFE_REFERENCES) - // Ensure that references are forcefully type-checked upon construction - #define SOL_SAFE_REFERENCES 1 - #endif - - // Safe usertypes checks for errors such as - // obj = my_type.new() - // obj.f() -- note the '.' instead of ':' - // usertypes should be safe no matter what - #if !defined(SOL_SAFE_USERTYPE) - #define SOL_SAFE_USERTYPE 1 - #endif - - #if !defined(SOL_SAFE_FUNCTION_CALLS) - // Function calls from Lua should be automatically safe in debug mode - #define SOL_SAFE_FUNCTION_CALLS 1 - #endif - - // Print any exceptions / errors that occur - // in debug mode to the default error stream / console - #if !defined(SOL_PRINT_ERRORS) - #define SOL_PRINT_ERRORS 1 - #endif - - // Print any exceptions / errors that occur - // in debug mode to the default error stream / console - #if !defined(SOL_SAFE_STACK_CHECK) - #define SOL_SAFE_STACK_CHECK 1 - #endif - -#endif // DEBUG: Turn on all debug safety features for VC++ / g++ / clang++ and similar - -#if !defined(SOL_PRINT_ERRORS) -#define SOL_PRINT_ERRORS 0 -#endif - -#if !defined(SOL_DEFAULT_PASS_ON_ERROR) -#define SOL_DEFAULT_PASS_ON_ERROR 0 -#endif - -#if !defined(SOL_ENABLE_INTEROP) -#define SOL_ENABLE_INTEROP 0 -#endif - -#if defined(__MAC_OS_X_VERSION_MAX_ALLOWED) || defined(__OBJC__) || defined(nil) -#if !defined(SOL_NO_NIL) -#define SOL_NO_NIL 1 -#endif -#endif // avoiding nil defines / keywords - -#if defined(SOL_USE_BOOST) && SOL_USE_BOOST -#if !defined(SOL_UNORDERED_MAP_COMPATIBLE_HASH) -#define SOL_UNORDERED_MAP_COMPATIBLE_HASH 1 -#endif // SOL_UNORDERED_MAP_COMPATIBLE_HASH -#endif - -#ifndef SOL_STACK_STRING_OPTIMIZATION_SIZE -#define SOL_STACK_STRING_OPTIMIZATION_SIZE 1024 -#endif // Optimized conversion routines using a KB or so off the stack - -#if !defined(SOL_SAFE_STACK_CHECK) -#define SOL_SAFE_STACK_CHECK 0 -#endif // use luaL_checkstack to check stack overflow / overrun - -// end of sol/config.hpp - -// beginning of sol/config_setup.hpp - -// end of sol/config_setup.hpp - -// end of sol/feature_test.hpp - -#include -#include - -#if defined(SOL_USING_CXX_LUA) && SOL_USING_CXX_LUA -struct lua_State; -#else -extern "C" { - struct lua_State; -} -#endif // C++ Mangling for Lua vs. Not - -namespace sol { - - 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 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 defined(SOL_SAFE_FUNCTION) && SOL_SAFE_FUNCTION - using function = protected_function; - using main_function = main_protected_function; - using stack_function = stack_protected_function; -#else - using function = unsafe_function; - using main_function = main_unsafe_function; - using stack_function = stack_unsafe_function; -#endif - using stack_aligned_function = stack_aligned_unsafe_function; - 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 defined(SOL_SAFE_FUNCTION) && SOL_SAFE_FUNCTION - 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 !defined(SOL_USE_BOOST) || (SOL_USE_BOOST == 0) - template - class optional; - - template - class optional; -#endif - -} // 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 - -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