├── .clang-format ├── .editorconfig ├── .gitattributes ├── .gitignore ├── .gitmodules ├── DInput.vcxproj ├── DInput.vcxproj.filters ├── DInput8.vcxproj ├── DInput8.vcxproj.filters ├── Doxyfile ├── HookModule.vcxproj ├── HookModule.vcxproj.filters ├── Include └── Xidi │ ├── Internal │ ├── ApiBitSet.h │ ├── ApiDirectInput.h │ ├── ApiGUID.h │ ├── ApiWindows.h │ ├── ApiXidi.h │ ├── ConcurrencyWrapper.h │ ├── ControllerIdentification.h │ ├── ControllerMath.h │ ├── ControllerTypes.h │ ├── DataFormat.h │ ├── DirectInputClassFactory.h │ ├── DllExportForward.inc │ ├── DllFunctions.h │ ├── ElementMapper.h │ ├── ExportApiDirectInput.h │ ├── ForceFeedbackDevice.h │ ├── ForceFeedbackEffect.h │ ├── ForceFeedbackMath.h │ ├── ForceFeedbackParameters.h │ ├── ForceFeedbackTypes.h │ ├── Globals.h │ ├── ImportApiDirectInput.h │ ├── ImportApiWinMM.h │ ├── ImportApiXInput.h │ ├── Keyboard.h │ ├── Mapper.h │ ├── MapperBuilder.h │ ├── MapperParser.h │ ├── Mouse.h │ ├── PhysicalController.h │ ├── SetHooks.h │ ├── StateChangeEventBuffer.h │ ├── Strings.h │ ├── VirtualController.h │ ├── VirtualDirectInputDevice.h │ ├── VirtualDirectInputEffect.h │ ├── WrapperIDirectInput.h │ ├── WrapperJoyWinMM.h │ └── XidiConfigReader.h │ └── Test │ ├── MockDirectInput.h │ ├── MockDirectInputDevice.h │ ├── MockElementMapper.h │ ├── MockForceFeedbackEffect.h │ ├── MockKeyboard.h │ ├── MockMouse.h │ └── MockPhysicalController.h ├── LICENSE ├── PackageRelease.bat ├── Properties ├── DInput.props ├── DInput8.props ├── HookModule.props ├── WinMM.props └── XidiTest.props ├── README.md ├── Resources ├── DInput.h ├── DInput.rc ├── DInput8.h ├── DInput8.rc ├── HookModule.h ├── HookModule.rc ├── WinMM.h ├── WinMM.rc ├── Xidi.h └── Xidi.rc ├── Source ├── ApiDirectInput.cpp ├── ApiGUID.cpp ├── ApiXidi.cpp ├── ControllerIdentification.cpp ├── ControllerMath.cpp ├── DataFormat.cpp ├── DirectInputClassFactory.cpp ├── DllFunctions.cpp ├── DllMain.cpp ├── ElementMapper.cpp ├── ExportApiDirectInput.cpp ├── ForceFeedbackDevice.cpp ├── ForceFeedbackEffect.cpp ├── ForceFeedbackParameters.cpp ├── ForwardedApiWinMM.asm ├── ForwardedApiWinMM.cpp ├── Globals.cpp ├── HookModuleMain.cpp ├── Hooks │ └── CoCreateInstance.cpp ├── ImportApiDirectInput.cpp ├── ImportApiWinMM.cpp ├── ImportApiXInput.cpp ├── Keyboard.cpp ├── Mapper.cpp ├── MapperBuilder.cpp ├── MapperDefinitions.cpp ├── MapperParser.cpp ├── Mouse.cpp ├── PhysicalController.cpp ├── SetHooks.cpp ├── SetHooksDirectInput.cpp ├── SetHooksWinMM.cpp ├── StateChangeEventBuffer.cpp ├── Strings.cpp ├── Test │ ├── Case │ │ ├── AxisMapperTest.cpp │ │ ├── ButtonMapperTest.cpp │ │ ├── CompoundMapperTest.cpp │ │ ├── ConstantForceEffectTest.cpp │ │ ├── ControllerMathTest.cpp │ │ ├── DataFormatTest.cpp │ │ ├── DigitalAxisMapperTest.cpp │ │ ├── ForceFeedbackDeviceTest.cpp │ │ ├── ForceFeedbackEffectTest.cpp │ │ ├── ForceFeedbackParametersTest.cpp │ │ ├── InvertMapperTest.cpp │ │ ├── KeyboardMapperTest.cpp │ │ ├── MapperBuilderTest.cpp │ │ ├── MapperParserTest.cpp │ │ ├── MapperTest.cpp │ │ ├── MouseAxisMapperTest.cpp │ │ ├── MouseButtonMapperTest.cpp │ │ ├── PeriodicEffectTest.cpp │ │ ├── PovMapperTest.cpp │ │ ├── RampForceEffectTest.cpp │ │ ├── SplitMapperTest.cpp │ │ ├── StateChangeEventBufferTest.cpp │ │ ├── VirtualControllerTest.cpp │ │ ├── VirtualDirectInputDeviceTest.cpp │ │ ├── VirtualDirectInputEffectTest.cpp │ │ └── WrapperIDirectInputTest.cpp │ ├── MockDirectInput.cpp │ ├── MockDirectInputDevice.cpp │ ├── MockKeyboard.cpp │ ├── MockMouse.cpp │ ├── MockPhysicalController.cpp │ └── TestMain.cpp ├── VirtualController.cpp ├── VirtualDirectInputDevice.cpp ├── VirtualDirectInputEffect.cpp ├── WrapperIDirectInput.cpp ├── WrapperJoyWinMM.cpp └── XidiConfigReader.cpp ├── ThirdParty ├── Boost │ ├── Files │ │ ├── LICENSE_1_0.txt │ │ ├── README.md │ │ └── boost │ │ │ ├── assert.hpp │ │ │ ├── assert │ │ │ └── source_location.hpp │ │ │ ├── circular_buffer.hpp │ │ │ ├── circular_buffer │ │ │ ├── base.hpp │ │ │ ├── debug.hpp │ │ │ ├── details.hpp │ │ │ └── space_optimized.hpp │ │ │ ├── circular_buffer_fwd.hpp │ │ │ ├── concept │ │ │ ├── assert.hpp │ │ │ ├── detail │ │ │ │ ├── backward_compatibility.hpp │ │ │ │ ├── borland.hpp │ │ │ │ ├── concept_def.hpp │ │ │ │ ├── concept_undef.hpp │ │ │ │ ├── general.hpp │ │ │ │ ├── has_constraints.hpp │ │ │ │ └── msvc.hpp │ │ │ └── usage.hpp │ │ │ ├── concept_check.hpp │ │ │ ├── config.hpp │ │ │ ├── config │ │ │ ├── abi │ │ │ │ ├── borland_prefix.hpp │ │ │ │ ├── borland_suffix.hpp │ │ │ │ ├── msvc_prefix.hpp │ │ │ │ └── msvc_suffix.hpp │ │ │ ├── abi_prefix.hpp │ │ │ ├── abi_suffix.hpp │ │ │ ├── auto_link.hpp │ │ │ ├── compiler │ │ │ │ ├── borland.hpp │ │ │ │ ├── clang.hpp │ │ │ │ ├── codegear.hpp │ │ │ │ ├── comeau.hpp │ │ │ │ ├── common_edg.hpp │ │ │ │ ├── compaq_cxx.hpp │ │ │ │ ├── cray.hpp │ │ │ │ ├── diab.hpp │ │ │ │ ├── digitalmars.hpp │ │ │ │ ├── gcc.hpp │ │ │ │ ├── gcc_xml.hpp │ │ │ │ ├── greenhills.hpp │ │ │ │ ├── hp_acc.hpp │ │ │ │ ├── intel.hpp │ │ │ │ ├── kai.hpp │ │ │ │ ├── metrowerks.hpp │ │ │ │ ├── mpw.hpp │ │ │ │ ├── nvcc.hpp │ │ │ │ ├── pathscale.hpp │ │ │ │ ├── pgi.hpp │ │ │ │ ├── sgi_mipspro.hpp │ │ │ │ ├── sunpro_cc.hpp │ │ │ │ ├── vacpp.hpp │ │ │ │ ├── visualc.hpp │ │ │ │ ├── xlcpp.hpp │ │ │ │ └── xlcpp_zos.hpp │ │ │ ├── detail │ │ │ │ ├── posix_features.hpp │ │ │ │ ├── select_compiler_config.hpp │ │ │ │ ├── select_platform_config.hpp │ │ │ │ ├── select_stdlib_config.hpp │ │ │ │ └── suffix.hpp │ │ │ ├── header_deprecated.hpp │ │ │ ├── helper_macros.hpp │ │ │ ├── no_tr1 │ │ │ │ ├── cmath.hpp │ │ │ │ ├── complex.hpp │ │ │ │ ├── functional.hpp │ │ │ │ ├── memory.hpp │ │ │ │ └── utility.hpp │ │ │ ├── platform │ │ │ │ ├── aix.hpp │ │ │ │ ├── amigaos.hpp │ │ │ │ ├── beos.hpp │ │ │ │ ├── bsd.hpp │ │ │ │ ├── cloudabi.hpp │ │ │ │ ├── cray.hpp │ │ │ │ ├── cygwin.hpp │ │ │ │ ├── haiku.hpp │ │ │ │ ├── hpux.hpp │ │ │ │ ├── irix.hpp │ │ │ │ ├── linux.hpp │ │ │ │ ├── macos.hpp │ │ │ │ ├── qnxnto.hpp │ │ │ │ ├── solaris.hpp │ │ │ │ ├── symbian.hpp │ │ │ │ ├── vms.hpp │ │ │ │ ├── vxworks.hpp │ │ │ │ ├── win32.hpp │ │ │ │ └── zos.hpp │ │ │ ├── pragma_message.hpp │ │ │ ├── requires_threads.hpp │ │ │ ├── stdlib │ │ │ │ ├── dinkumware.hpp │ │ │ │ ├── libcomo.hpp │ │ │ │ ├── libcpp.hpp │ │ │ │ ├── libstdcpp3.hpp │ │ │ │ ├── modena.hpp │ │ │ │ ├── msl.hpp │ │ │ │ ├── roguewave.hpp │ │ │ │ ├── sgi.hpp │ │ │ │ ├── stlport.hpp │ │ │ │ ├── vacpp.hpp │ │ │ │ └── xlcpp_zos.hpp │ │ │ ├── user.hpp │ │ │ ├── warning_disable.hpp │ │ │ └── workaround.hpp │ │ │ ├── core │ │ │ ├── addressof.hpp │ │ │ ├── allocator_access.hpp │ │ │ ├── empty_value.hpp │ │ │ ├── no_exceptions_support.hpp │ │ │ └── pointer_traits.hpp │ │ │ ├── cstdint.hpp │ │ │ ├── current_function.hpp │ │ │ ├── detail │ │ │ └── workaround.hpp │ │ │ ├── exception │ │ │ └── exception.hpp │ │ │ ├── limits.hpp │ │ │ ├── move │ │ │ ├── adl_move_swap.hpp │ │ │ ├── algo │ │ │ │ └── move.hpp │ │ │ ├── algorithm.hpp │ │ │ ├── core.hpp │ │ │ ├── detail │ │ │ │ ├── config_begin.hpp │ │ │ │ ├── config_end.hpp │ │ │ │ ├── iterator_to_raw_pointer.hpp │ │ │ │ ├── iterator_traits.hpp │ │ │ │ ├── meta_utils.hpp │ │ │ │ ├── meta_utils_core.hpp │ │ │ │ ├── pointer_element.hpp │ │ │ │ ├── std_ns_begin.hpp │ │ │ │ ├── std_ns_end.hpp │ │ │ │ ├── to_raw_pointer.hpp │ │ │ │ ├── type_traits.hpp │ │ │ │ └── workaround.hpp │ │ │ ├── iterator.hpp │ │ │ ├── move.hpp │ │ │ ├── traits.hpp │ │ │ ├── utility.hpp │ │ │ └── utility_core.hpp │ │ │ ├── preprocessor │ │ │ ├── arithmetic │ │ │ │ ├── dec.hpp │ │ │ │ ├── inc.hpp │ │ │ │ └── limits │ │ │ │ │ ├── dec_1024.hpp │ │ │ │ │ ├── dec_256.hpp │ │ │ │ │ ├── dec_512.hpp │ │ │ │ │ ├── inc_1024.hpp │ │ │ │ │ ├── inc_256.hpp │ │ │ │ │ └── inc_512.hpp │ │ │ ├── cat.hpp │ │ │ ├── comma_if.hpp │ │ │ ├── config │ │ │ │ ├── config.hpp │ │ │ │ └── limits.hpp │ │ │ ├── control │ │ │ │ ├── expr_iif.hpp │ │ │ │ ├── if.hpp │ │ │ │ └── iif.hpp │ │ │ ├── debug │ │ │ │ └── error.hpp │ │ │ ├── detail │ │ │ │ ├── auto_rec.hpp │ │ │ │ ├── dmc │ │ │ │ │ └── auto_rec.hpp │ │ │ │ └── limits │ │ │ │ │ ├── auto_rec_1024.hpp │ │ │ │ │ ├── auto_rec_256.hpp │ │ │ │ │ └── auto_rec_512.hpp │ │ │ ├── facilities │ │ │ │ ├── check_empty.hpp │ │ │ │ ├── detail │ │ │ │ │ └── is_empty.hpp │ │ │ │ ├── empty.hpp │ │ │ │ ├── expand.hpp │ │ │ │ ├── is_1.hpp │ │ │ │ ├── is_empty.hpp │ │ │ │ ├── is_empty_variadic.hpp │ │ │ │ └── overload.hpp │ │ │ ├── logical │ │ │ │ ├── bool.hpp │ │ │ │ ├── compl.hpp │ │ │ │ └── limits │ │ │ │ │ ├── bool_1024.hpp │ │ │ │ │ ├── bool_256.hpp │ │ │ │ │ └── bool_512.hpp │ │ │ ├── punctuation │ │ │ │ ├── comma.hpp │ │ │ │ ├── comma_if.hpp │ │ │ │ ├── detail │ │ │ │ │ └── is_begin_parens.hpp │ │ │ │ └── is_begin_parens.hpp │ │ │ ├── repetition │ │ │ │ ├── detail │ │ │ │ │ ├── dmc │ │ │ │ │ │ └── for.hpp │ │ │ │ │ ├── edg │ │ │ │ │ │ ├── for.hpp │ │ │ │ │ │ └── limits │ │ │ │ │ │ │ ├── for_1024.hpp │ │ │ │ │ │ │ ├── for_256.hpp │ │ │ │ │ │ │ └── for_512.hpp │ │ │ │ │ ├── for.hpp │ │ │ │ │ ├── limits │ │ │ │ │ │ ├── for_1024.hpp │ │ │ │ │ │ ├── for_256.hpp │ │ │ │ │ │ └── for_512.hpp │ │ │ │ │ └── msvc │ │ │ │ │ │ └── for.hpp │ │ │ │ ├── for.hpp │ │ │ │ └── limits │ │ │ │ │ ├── for_1024.hpp │ │ │ │ │ ├── for_256.hpp │ │ │ │ │ └── for_512.hpp │ │ │ ├── seq │ │ │ │ ├── detail │ │ │ │ │ └── is_empty.hpp │ │ │ │ ├── elem.hpp │ │ │ │ ├── enum.hpp │ │ │ │ ├── for_each_i.hpp │ │ │ │ ├── limits │ │ │ │ │ ├── elem_1024.hpp │ │ │ │ │ ├── elem_256.hpp │ │ │ │ │ ├── elem_512.hpp │ │ │ │ │ ├── enum_1024.hpp │ │ │ │ │ ├── enum_256.hpp │ │ │ │ │ ├── enum_512.hpp │ │ │ │ │ ├── size_1024.hpp │ │ │ │ │ ├── size_256.hpp │ │ │ │ │ └── size_512.hpp │ │ │ │ ├── seq.hpp │ │ │ │ └── size.hpp │ │ │ ├── tuple │ │ │ │ ├── detail │ │ │ │ │ └── is_single_return.hpp │ │ │ │ ├── eat.hpp │ │ │ │ ├── elem.hpp │ │ │ │ ├── rem.hpp │ │ │ │ └── size.hpp │ │ │ └── variadic │ │ │ │ ├── detail │ │ │ │ └── has_opt.hpp │ │ │ │ ├── elem.hpp │ │ │ │ ├── has_opt.hpp │ │ │ │ ├── limits │ │ │ │ ├── elem_128.hpp │ │ │ │ ├── elem_256.hpp │ │ │ │ ├── elem_64.hpp │ │ │ │ ├── size_128.hpp │ │ │ │ ├── size_256.hpp │ │ │ │ └── size_64.hpp │ │ │ │ └── size.hpp │ │ │ ├── static_assert.hpp │ │ │ ├── throw_exception.hpp │ │ │ ├── type_traits │ │ │ ├── add_const.hpp │ │ │ ├── add_lvalue_reference.hpp │ │ │ ├── add_reference.hpp │ │ │ ├── add_rvalue_reference.hpp │ │ │ ├── conditional.hpp │ │ │ ├── conversion_traits.hpp │ │ │ ├── declval.hpp │ │ │ ├── detail │ │ │ │ ├── config.hpp │ │ │ │ ├── is_function_cxx_03.hpp │ │ │ │ ├── is_function_cxx_11.hpp │ │ │ │ ├── is_function_msvc10_fix.hpp │ │ │ │ ├── is_function_ptr_helper.hpp │ │ │ │ ├── is_function_ptr_tester.hpp │ │ │ │ ├── is_mem_fun_pointer_impl.hpp │ │ │ │ ├── is_mem_fun_pointer_tester.hpp │ │ │ │ ├── is_member_function_pointer_cxx_03.hpp │ │ │ │ ├── is_member_function_pointer_cxx_11.hpp │ │ │ │ ├── is_rvalue_reference_msvc10_fix.hpp │ │ │ │ └── yes_no_type.hpp │ │ │ ├── enable_if.hpp │ │ │ ├── has_nothrow_assign.hpp │ │ │ ├── has_nothrow_copy.hpp │ │ │ ├── has_trivial_assign.hpp │ │ │ ├── has_trivial_constructor.hpp │ │ │ ├── has_trivial_copy.hpp │ │ │ ├── has_trivial_destructor.hpp │ │ │ ├── has_trivial_move_assign.hpp │ │ │ ├── has_trivial_move_constructor.hpp │ │ │ ├── integral_constant.hpp │ │ │ ├── intrinsics.hpp │ │ │ ├── is_abstract.hpp │ │ │ ├── is_arithmetic.hpp │ │ │ ├── is_array.hpp │ │ │ ├── is_assignable.hpp │ │ │ ├── is_base_and_derived.hpp │ │ │ ├── is_class.hpp │ │ │ ├── is_complete.hpp │ │ │ ├── is_const.hpp │ │ │ ├── is_constructible.hpp │ │ │ ├── is_convertible.hpp │ │ │ ├── is_copy_constructible.hpp │ │ │ ├── is_default_constructible.hpp │ │ │ ├── is_destructible.hpp │ │ │ ├── is_empty.hpp │ │ │ ├── is_enum.hpp │ │ │ ├── is_floating_point.hpp │ │ │ ├── is_function.hpp │ │ │ ├── is_integral.hpp │ │ │ ├── is_lvalue_reference.hpp │ │ │ ├── is_member_function_pointer.hpp │ │ │ ├── is_member_pointer.hpp │ │ │ ├── is_noncopyable.hpp │ │ │ ├── is_nothrow_move_assignable.hpp │ │ │ ├── is_nothrow_move_constructible.hpp │ │ │ ├── is_pod.hpp │ │ │ ├── is_pointer.hpp │ │ │ ├── is_polymorphic.hpp │ │ │ ├── is_reference.hpp │ │ │ ├── is_rvalue_reference.hpp │ │ │ ├── is_same.hpp │ │ │ ├── is_scalar.hpp │ │ │ ├── is_stateless.hpp │ │ │ ├── is_union.hpp │ │ │ ├── is_void.hpp │ │ │ ├── is_volatile.hpp │ │ │ ├── remove_const.hpp │ │ │ ├── remove_cv.hpp │ │ │ └── remove_reference.hpp │ │ │ └── version.hpp │ ├── LICENSE │ ├── README.md │ └── VERSION ├── Hookshot │ ├── Files │ │ └── Include │ │ │ └── Hookshot │ │ │ ├── DynamicHook.h │ │ │ ├── Hookshot.h │ │ │ ├── HookshotFunctions.h │ │ │ ├── HookshotTypes.h │ │ │ └── StaticHook.h │ └── LICENSE ├── ThirdParty.Boost.props ├── ThirdParty.Hookshot.props ├── ThirdParty.XstdBitSet.props └── XstdBitSet │ ├── Files │ ├── LICENSE_1_0.txt │ ├── README.md │ └── include │ │ └── xstd │ │ └── bit_set.hpp │ ├── LICENSE │ └── VERSION ├── WinMM.vcxproj ├── WinMM.vcxproj.filters ├── Xidi.sln ├── XidiTest.vcxproj ├── XidiTest.vcxproj.filters ├── dinput.def ├── dinput8.def └── winmm.def /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "Infra"] 2 | path = Modules/Infra 3 | url = https://github.com/samuelgr/Infra.git 4 | -------------------------------------------------------------------------------- /Include/Xidi/Internal/ApiBitSet.h: -------------------------------------------------------------------------------- 1 | /*************************************************************************************************** 2 | * Xidi 3 | * DirectInput interface for XInput controllers. 4 | *************************************************************************************************** 5 | * Authored by Samuel Grossman 6 | * Copyright (c) 2016-2025 7 | ***********************************************************************************************//** 8 | * @file ApiBitSet.h 9 | * Type aliases for bit set objects that provide improved readability. 10 | **************************************************************************************************/ 11 | 12 | #pragma once 13 | 14 | #include 15 | #include 16 | 17 | #include 18 | 19 | namespace Xidi 20 | { 21 | /// Type alias for most bit set objects that operate on plain integers. 22 | /// @tparam kNumBits Number of bits to be represented by the underlying bit set object. 23 | template using BitSet = xstd::bit_set; 24 | 25 | /// Type alias for bit set objects that operate on enumerations. 26 | /// @tparam EnumType Enumeration to be represented by the bit set object. 27 | /// @tparam kNumBits Number of bits to be represented by the underlying bit set object, which 28 | /// defaults to a `Count` member of the enumeration. 29 | template < 30 | typename EnumType, 31 | EnumType kNumBits = EnumType::Count, 32 | typename = std::enable_if_t>> 33 | using BitSetEnum = xstd::bit_set(kNumBits)>; 34 | } // namespace Xidi 35 | -------------------------------------------------------------------------------- /Include/Xidi/Internal/ApiGUID.h: -------------------------------------------------------------------------------- 1 | /*************************************************************************************************** 2 | * Xidi 3 | * DirectInput interface for XInput controllers. 4 | *************************************************************************************************** 5 | * Authored by Samuel Grossman 6 | * Copyright (c) 2016-2025 7 | ***********************************************************************************************//** 8 | * @file ApiGUID.h 9 | * Declaration of helpers for integrating GUID types into the standard template library. 10 | **************************************************************************************************/ 11 | 12 | #pragma once 13 | 14 | #include 15 | #include 16 | 17 | #include "ApiWindows.h" 18 | 19 | /// Used to produce hashes of GUID types. 20 | template <> struct std::hash 21 | { 22 | size_t operator()(REFGUID keyval) const; 23 | }; 24 | 25 | /// Used to compare GUID types for equality. 26 | template <> struct std::equal_to 27 | { 28 | bool operator()(REFGUID lhs, REFGUID rhs) const; 29 | }; 30 | 31 | /// Used to compare GUID types for ordering purposes. 32 | template <> struct std::less 33 | { 34 | bool operator()(REFGUID lhs, REFGUID rhs) const; 35 | }; 36 | -------------------------------------------------------------------------------- /Include/Xidi/Internal/ApiWindows.h: -------------------------------------------------------------------------------- 1 | /*************************************************************************************************** 2 | * Xidi 3 | * DirectInput interface for XInput controllers. 4 | *************************************************************************************************** 5 | * Authored by Samuel Grossman 6 | * Copyright (c) 2016-2025 7 | ***********************************************************************************************//** 8 | * @file ApiWindows.h 9 | * Common header file for the correct version of the Windows API. 10 | **************************************************************************************************/ 11 | 12 | #pragma once 13 | 14 | // Windows header files are sensitive to include order. Compilation will fail if the order is 15 | // incorrect. Top-level macros and headers must come first, followed by headers for other parts 16 | // of system functionality. 17 | 18 | // clang-format off 19 | 20 | #define NOMINMAX 21 | #include 22 | #include 23 | 24 | // clang-format on 25 | 26 | #include 27 | #include 28 | #include 29 | -------------------------------------------------------------------------------- /Include/Xidi/Internal/DirectInputClassFactory.h: -------------------------------------------------------------------------------- 1 | /*************************************************************************************************** 2 | * Xidi 3 | * DirectInput interface for XInput controllers. 4 | *************************************************************************************************** 5 | * Authored by Samuel Grossman 6 | * Copyright (c) 2016-2025 7 | ***********************************************************************************************//** 8 | * @file DirectInputClassFactory.h 9 | * Declaration of COM class factory functionality for DirectInput objects. 10 | **************************************************************************************************/ 11 | 12 | #pragma once 13 | 14 | #include "ApiWindows.h" 15 | 16 | namespace Xidi 17 | { 18 | /// Factory class for constructing DirectInput COM objects which implements the standard COM class 19 | /// factory interface for doing so. Internally this is just a singleton object, so all reference 20 | /// count operations are no-ops. 21 | class DirectInputClassFactory : public IClassFactory 22 | { 23 | public: 24 | 25 | /// Checks if this factory class can create objects of the specified COM class ID. 26 | /// @param [in] rclsid Class ID of the COM class to check. 27 | /// @return `true` if objects of the specified class ID can be created, `false` otherwise. 28 | static bool CanCreateObjectsOfClass(REFCLSID rclsid); 29 | 30 | /// Retrieves the singleton instance of this class as a standard COM interface pointer. 31 | /// @return COM interface pointer. 32 | static IClassFactory* GetInstance(void); 33 | 34 | // IClassFactory 35 | HRESULT __stdcall CreateInstance(IUnknown* pUnkOuter, REFIID riid, void** ppvObject) override; 36 | HRESULT __stdcall LockServer(BOOL fLock) override; 37 | 38 | // IUnknown 39 | HRESULT __stdcall QueryInterface(REFIID riid, LPVOID* ppvObj) override; 40 | ULONG __stdcall AddRef(void) override; 41 | ULONG __stdcall Release(void) override; 42 | 43 | private: 44 | 45 | DirectInputClassFactory(void) = default; 46 | 47 | DirectInputClassFactory(const DirectInputClassFactory& other) = delete; 48 | }; 49 | } // namespace Xidi 50 | -------------------------------------------------------------------------------- /Include/Xidi/Internal/DllExportForward.inc: -------------------------------------------------------------------------------- 1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2 | ; Xidi 3 | ; DirectInput interface for XInput controllers. 4 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 5 | ; Authored by Samuel Grossman 6 | ; Copyright (c) 2016-2025 7 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 8 | ; DllExportForward.inc 9 | ; Declaration of assembly macros for creating exported entry points in a DLL that are perfectly 10 | ; forwarded to another one. 11 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 12 | 13 | IFNDEF __XIDI_DLLEXPORTFORWARD_INC 14 | __XIDI_DLLEXPORTFORWARD_INC EQU 1 15 | 16 | 17 | INCLUDE Infra/Core/Preamble.inc 18 | INCLUDE Infra/Core/Registers.inc 19 | 20 | 21 | EXTRN _DllForwardedFunctionsInitialize:PROC 22 | 23 | 24 | DllExportForward MACRO libraryName, funcName 25 | 26 | LOCAL $initialized 27 | EXTRN @catstr(__ptr_export_, libraryName, _, funcName):PROC 28 | 29 | funcName PROC PUBLIC 30 | cmp SIZE_T PTR [@catstr(__ptr_export_, libraryName, _, funcName)], 0 31 | jne $initialized 32 | call _DllForwardedFunctionsInitialize 33 | $initialized: 34 | jmp SIZE_T PTR [@catstr(__ptr_export_, libraryName, _, funcName)] 35 | funcName ENDP 36 | 37 | ENDM 38 | 39 | 40 | ENDIF ; __XIDI_DLLEXPORTFORWARD_INC 41 | -------------------------------------------------------------------------------- /Include/Xidi/Internal/ExportApiDirectInput.h: -------------------------------------------------------------------------------- 1 | /*************************************************************************************************** 2 | * Xidi 3 | * DirectInput interface for XInput controllers. 4 | *************************************************************************************************** 5 | * Authored by Samuel Grossman 6 | * Copyright (c) 2016-2025 7 | ***********************************************************************************************//** 8 | * @file ExportApiDirectInput.h 9 | * Declaration of primary exported functions for the DirectInput library. 10 | **************************************************************************************************/ 11 | 12 | #pragma once 13 | 14 | #include "ApiDirectInput.h" 15 | 16 | namespace Xidi 17 | { 18 | namespace ExportApiDirectInput 19 | { 20 | extern "C" 21 | { 22 | HRESULT __stdcall DirectInput8Create( 23 | HINSTANCE hinst, DWORD dwVersion, REFIID riidltf, LPVOID* ppvOut, LPUNKNOWN punkOuter); 24 | HRESULT __stdcall DirectInputCreateA( 25 | HINSTANCE hinst, DWORD dwVersion, LPDIRECTINPUTA* ppDI, LPUNKNOWN punkOuter); 26 | HRESULT __stdcall DirectInputCreateW( 27 | HINSTANCE hinst, DWORD dwVersion, LPDIRECTINPUTW* ppDI, LPUNKNOWN punkOuter); 28 | HRESULT __stdcall DirectInputCreateEx( 29 | HINSTANCE hinst, DWORD dwVersion, REFIID riidltf, LPVOID* ppvOut, LPUNKNOWN punkOuter); 30 | HRESULT __stdcall DllRegisterServer(void); 31 | HRESULT __stdcall DllUnregisterServer(void); 32 | HRESULT __stdcall DllCanUnloadNow(void); 33 | HRESULT __stdcall DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv); 34 | HRESULT __stdcall LegacyDllRegisterServer(void); 35 | HRESULT __stdcall LegacyDllUnregisterServer(void); 36 | HRESULT __stdcall LegacyDllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv); 37 | } 38 | } // namespace ExportApiDirectInput 39 | } // namespace Xidi -------------------------------------------------------------------------------- /Include/Xidi/Internal/Globals.h: -------------------------------------------------------------------------------- 1 | /*************************************************************************************************** 2 | * Xidi 3 | * DirectInput interface for XInput controllers. 4 | *************************************************************************************************** 5 | * Authored by Samuel Grossman 6 | * Copyright (c) 2016-2025 7 | ***********************************************************************************************//** 8 | * @file Globals.h 9 | * Declaration of a namespace for storing and retrieving global data. Intended for 10 | * miscellaneous data elements with no other suitable place. 11 | **************************************************************************************************/ 12 | 13 | #pragma once 14 | 15 | #include 16 | #include 17 | 18 | #include 19 | 20 | #include "ApiWindows.h" 21 | 22 | namespace Xidi 23 | { 24 | namespace Globals 25 | { 26 | /// Determines if this process has input focus based on whether or not a window it owns is at 27 | /// the foreground. 28 | /// @return `true` if so, `false` if not. 29 | bool DoesCurrentProcessHaveInputFocus(void); 30 | 31 | /// Retrieves the configuration object that represents the data read from a configuration file. 32 | /// @return Read-only configuration object reference. 33 | const Infra::Configuration::ConfigurationData& GetConfigurationData(void); 34 | 35 | /// Performs run-time initialization. 36 | /// This function only performs operations that are safe to perform within a DLL entry point. 37 | void Initialize(void); 38 | } // namespace Globals 39 | } // namespace Xidi 40 | -------------------------------------------------------------------------------- /Include/Xidi/Internal/ImportApiDirectInput.h: -------------------------------------------------------------------------------- 1 | /*************************************************************************************************** 2 | * Xidi 3 | * DirectInput interface for XInput controllers. 4 | *************************************************************************************************** 5 | * Authored by Samuel Grossman 6 | * Copyright (c) 2016-2025 7 | ***********************************************************************************************//** 8 | * @file ImportApiDirectInput.h 9 | * Declarations of functions for accessing the DirectInput API imported from 10 | * the native DirectInput library. 11 | **************************************************************************************************/ 12 | 13 | #pragma once 14 | 15 | #include "ApiDirectInput.h" 16 | 17 | namespace Xidi 18 | { 19 | namespace ImportApiDirectInput 20 | { 21 | 22 | namespace Version8 23 | { 24 | HRESULT DirectInput8Create( 25 | HINSTANCE hinst, DWORD dwVersion, REFIID riidltf, LPVOID* ppvOut, LPUNKNOWN punkOuter); 26 | HRESULT DllRegisterServer(void); 27 | HRESULT DllUnregisterServer(void); 28 | HRESULT DllCanUnloadNow(void); 29 | HRESULT DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv); 30 | } // namespace Version8 31 | 32 | namespace VersionLegacy 33 | { 34 | HRESULT DirectInputCreateA( 35 | HINSTANCE hinst, DWORD dwVersion, LPDIRECTINPUTA* ppDI, LPUNKNOWN punkOuter); 36 | HRESULT DirectInputCreateW( 37 | HINSTANCE hinst, DWORD dwVersion, LPDIRECTINPUTW* ppDI, LPUNKNOWN punkOuter); 38 | HRESULT DirectInputCreateEx( 39 | HINSTANCE hinst, DWORD dwVersion, REFIID riidltf, LPVOID* ppvOut, LPUNKNOWN punkOuter); 40 | HRESULT DllRegisterServer(void); 41 | HRESULT DllUnregisterServer(void); 42 | HRESULT DllCanUnloadNow(void); 43 | HRESULT DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv); 44 | } // namespace VersionLegacy 45 | 46 | // clang-format on 47 | } // namespace ImportApiDirectInput 48 | } // namespace Xidi 49 | -------------------------------------------------------------------------------- /Include/Xidi/Internal/ImportApiWinMM.h: -------------------------------------------------------------------------------- 1 | /*************************************************************************************************** 2 | * Xidi 3 | * DirectInput interface for XInput controllers. 4 | *************************************************************************************************** 5 | * Authored by Samuel Grossman 6 | * Copyright (c) 2016-2025 7 | ***********************************************************************************************//** 8 | * @file ImportApiWinMM.h 9 | * Declarations of functions for accessing the WinMM API imported from the 10 | * native WinMM library. 11 | **************************************************************************************************/ 12 | 13 | #pragma once 14 | 15 | #include "ApiWindows.h" 16 | 17 | namespace Xidi 18 | { 19 | namespace ImportApiWinMM 20 | { 21 | /// Dynamically loads the WinMM library and sets up all imported function calls. 22 | void Initialize(void); 23 | 24 | // clang-format off 25 | 26 | MMRESULT joyConfigChanged(DWORD dwFlags); 27 | MMRESULT joyGetDevCapsA(UINT_PTR uJoyID, LPJOYCAPSA pjc, UINT cbjc); 28 | MMRESULT joyGetDevCapsW(UINT_PTR uJoyID, LPJOYCAPSW pjc, UINT cbjc); 29 | UINT joyGetNumDevs(void); 30 | MMRESULT joyGetPos(UINT uJoyID, LPJOYINFO pji); 31 | MMRESULT joyGetPosEx(UINT uJoyID, LPJOYINFOEX pji); 32 | MMRESULT joyGetThreshold(UINT uJoyID, LPUINT puThreshold); 33 | MMRESULT joyReleaseCapture(UINT uJoyID); 34 | MMRESULT joySetCapture(HWND hwnd, UINT uJoyID, UINT uPeriod, BOOL fChanged); 35 | MMRESULT joySetThreshold(UINT uJoyID, UINT uThreshold); 36 | 37 | MMRESULT timeBeginPeriod(UINT uPeriod); 38 | MMRESULT timeGetDevCaps(LPTIMECAPS ptc, UINT cbtc); 39 | DWORD timeGetTime(void); 40 | 41 | // clang-format on 42 | } // namespace ImportApiWinMM 43 | } // namespace Xidi 44 | -------------------------------------------------------------------------------- /Include/Xidi/Internal/ImportApiXInput.h: -------------------------------------------------------------------------------- 1 | /*************************************************************************************************** 2 | * Xidi 3 | * DirectInput interface for XInput controllers. 4 | *************************************************************************************************** 5 | * Authored by Samuel Grossman 6 | * Copyright (c) 2016-2025 7 | ***********************************************************************************************//** 8 | * @file ImportApiXInput.h 9 | * Declarations of functions for accessing the XInput API imported from the native XInput 10 | * library. 11 | **************************************************************************************************/ 12 | 13 | #pragma once 14 | 15 | // XInput header files depend on Windows header files, which are are sensitive to include order. 16 | // See "ApiWindows.h" for more information. 17 | 18 | // clang-format off 19 | 20 | #include "ApiWindows.h" 21 | #include 22 | 23 | // clang-format on 24 | 25 | namespace Xidi 26 | { 27 | namespace ImportApiXInput 28 | { 29 | /// Dynamically loads the XInput library and sets up all imported function calls. 30 | void Initialize(void); 31 | 32 | DWORD XInputGetState(DWORD dwUserIndex, XINPUT_STATE* pState); 33 | DWORD XInputSetState(DWORD dwUserIndex, XINPUT_VIBRATION* pVibration); 34 | } // namespace ImportApiXInput 35 | } // namespace Xidi 36 | -------------------------------------------------------------------------------- /Include/Xidi/Internal/Keyboard.h: -------------------------------------------------------------------------------- 1 | /*************************************************************************************************** 2 | * Xidi 3 | * DirectInput interface for XInput controllers. 4 | *************************************************************************************************** 5 | * Authored by Samuel Grossman 6 | * Copyright (c) 2016-2025 7 | ***********************************************************************************************//** 8 | * @file Keyboard.h 9 | * Declaration of virtual keyboard event functionality, which allows physical controller 10 | * elements to trigger key presses and releases. 11 | **************************************************************************************************/ 12 | 13 | #pragma once 14 | 15 | namespace Xidi 16 | { 17 | namespace Keyboard 18 | { 19 | /// Number of milliseconds to wait between physical keyboard update attempts. 20 | inline constexpr unsigned int kKeyboardUpdatePeriodMilliseconds = 10; 21 | 22 | /// Number of keyboard keys that exist in total on a virtual keyboard. 23 | /// Value taken from DirectInput documentation, which indicates keyboard state is reported as an 24 | /// array of 256 bytes. 25 | inline constexpr unsigned int kVirtualKeyboardKeyCount = 256; 26 | 27 | /// Underlying type used to identify keyboard keys. 28 | /// Values themselves are DirectInput keyboard scan codes (see "dinput.h" for the DIK_* 29 | /// constants). 30 | using TKeyIdentifier = unsigned int; 31 | 32 | /// Submits a key state of pressed. 33 | /// @param [in] key Keyboard key that is affected. 34 | void SubmitKeyPressedState(TKeyIdentifier key); 35 | 36 | /// Submits a key state of released. 37 | /// @param [in] key Keyboard key that is affected. 38 | void SubmitKeyReleasedState(TKeyIdentifier key); 39 | } // namespace Keyboard 40 | } // namespace Xidi 41 | -------------------------------------------------------------------------------- /Include/Xidi/Internal/SetHooks.h: -------------------------------------------------------------------------------- 1 | /*************************************************************************************************** 2 | * Xidi 3 | * DirectInput interface for XInput controllers. 4 | *************************************************************************************************** 5 | * Authored by Samuel Grossman 6 | * Copyright (c) 2016-2025 7 | ***********************************************************************************************//** 8 | * @file SetHooks.h 9 | * Declaration of all Hookshot hooks set by the hook module and all associated functionality. 10 | **************************************************************************************************/ 11 | 12 | #pragma once 13 | 14 | #include 15 | 16 | #include "ApiWindows.h" 17 | 18 | namespace Xidi 19 | { 20 | /// Support function. Outputs the result of a hook setting operation. 21 | /// @param [in] functionName Name of the function that was intended to be hooked. 22 | /// @param [in] setHookResult Result returned from Hookshot of the attempt to set the hook. 23 | void OutputSetHookResult(const wchar_t* functionName, Hookshot::EResult setHookResult); 24 | 25 | /// Top-level function for setting all hooks related to DirectInput. 26 | /// @param [in] hookshot Hookshot interface pointer. 27 | void SetHooksDirectInput(Hookshot::IHookshot* hookshot); 28 | 29 | /// Top-level function for setting all hooks related to WinMM. 30 | /// @param [in] hookshot Hookshot interface pointer. 31 | void SetHooksWinMM(Hookshot::IHookshot* hookshot); 32 | } // namespace Xidi 33 | 34 | // Windows API: CoCreateInstance 35 | // Used to intercept attempts to create DirectInput COM objects. 36 | HOOKSHOT_STATIC_HOOK(CoCreateInstance); 37 | -------------------------------------------------------------------------------- /Include/Xidi/Internal/WrapperJoyWinMM.h: -------------------------------------------------------------------------------- 1 | /*************************************************************************************************** 2 | * Xidi 3 | * DirectInput interface for XInput controllers. 4 | *************************************************************************************************** 5 | * Authored by Samuel Grossman 6 | * Copyright (c) 2016-2025 7 | ***********************************************************************************************//** 8 | * @file WrapperJoyWinMM.h 9 | * Declaration of the wrapper for all WinMM joystick functions. 10 | **************************************************************************************************/ 11 | 12 | #pragma once 13 | 14 | #include "ApiWindows.h" 15 | 16 | namespace Xidi 17 | { 18 | namespace WrapperJoyWinMM 19 | { 20 | extern "C" 21 | { 22 | MMRESULT __stdcall joyConfigChanged(DWORD dwFlags); 23 | MMRESULT __stdcall joyGetDevCapsA(UINT_PTR uJoyID, JOYCAPSA* pjc, UINT cbjc); 24 | MMRESULT __stdcall joyGetDevCapsW(UINT_PTR uJoyID, JOYCAPSW* pjc, UINT cbjc); 25 | UINT __stdcall joyGetNumDevs(void); 26 | MMRESULT __stdcall joyGetPos(UINT uJoyID, LPJOYINFO pji); 27 | MMRESULT __stdcall joyGetPosEx(UINT uJoyID, LPJOYINFOEX pji); 28 | MMRESULT __stdcall joyGetThreshold(UINT uJoyID, LPUINT puThreshold); 29 | MMRESULT __stdcall joyReleaseCapture(UINT uJoyID); 30 | MMRESULT __stdcall joySetCapture(HWND hwnd, UINT uJoyID, UINT uPeriod, BOOL fChanged); 31 | MMRESULT __stdcall joySetThreshold(UINT uJoyID, UINT uThreshold); 32 | } 33 | } // namespace WrapperJoyWinMM 34 | } // namespace Xidi 35 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2016-2025, Samuel Grossman 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | * Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | * Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | * Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /PackageRelease.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | setlocal enabledelayedexpansion 3 | 4 | set project_name=Xidi 5 | set project_platforms=Win32 x64 6 | 7 | set project_has_sdk=no 8 | set project_has_third_party_license=yes 9 | 10 | set files_release=LICENSE README.md 11 | set files_release_build=dinput.dll dinput8.dll winmm.dll 12 | set files_release_build_Win32=Xidi.HookModule.32.dll 13 | set files_release_build_x64=Xidi.HookModule.64.dll 14 | 15 | set third_party_license=Hookshot Boost XstdBitSet 16 | 17 | call Modules\Infra\Build\Scripts\PackageRelease.bat 18 | -------------------------------------------------------------------------------- /Properties/DInput.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Xidi 5 | Boost,XstdBitSet 6 | 7 | -------------------------------------------------------------------------------- /Properties/DInput8.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Xidi 5 | Boost,XstdBitSet 6 | 7 | -------------------------------------------------------------------------------- /Properties/HookModule.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Xidi 5 | Hookshot 6 | 7 | -------------------------------------------------------------------------------- /Properties/WinMM.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Xidi 5 | Boost,XstdBitSet 6 | 7 | -------------------------------------------------------------------------------- /Properties/XidiTest.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Xidi 5 | Boost,XstdBitSet 6 | 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Xidi 2 | 3 | Xidi improves the gameplay experience when using modern XInput-based controllers (such as Xbox controllers) with older games that use DirectInput or WinMM to communicate with game controllers. In more technical terms, Xidi provides both DirectInput and WinMM interfaces for games to use and communicates with XInput-based game controllers natively using XInput, translating between the two interfaces as needed. 4 | 5 | Xidi is implemented as a library that games should load instead of the system-supplied versions. As such, it is a very localized fix: no installation is required, and no persistent system-wide changes are made. 6 | 7 | 8 | ## Key Features 9 | 10 | - Fixes issues encountered in older games, such as broken analog controls, phantom button presses, or complete failure to commmunicate with the controller. Without Xidi these issues can come up in DirectInput-based or WinMM-based games when used with an XInput controller. 11 | 12 | - Enables customization of game controller behavior, including simulating keyboard key presses. This can help make controls more intuitive and bring full controller support to games that only implement partial controller support. 13 | 14 | - Allows controllers to be changed while a game is running. Older games do not normally support this, but with Xidi controllers can be plugged in, unplugged, and swapped seamlessly during gameplay. Without Xidi this would require exiting and restarting the game. 15 | 16 | 17 | ## Limitations 18 | 19 | Xidi is not useful if: 20 | 21 | - A game already uses the XInput API to communicate with controllers. These games would not benefit from Xidi. 22 | 23 | - The problem arises with controllers that are not XInput-based controllers. Xidi will not communicate with non-XInput controllers. 24 | 25 | - The problem arises from an older non-XInput controller being used with an XInput-based game. This is the inverse of the problem Xidi solves, for which solution like the [Xbox 360 Controller Emulator](https://www.x360ce.com/) is needed. 26 | 27 | 28 | ## Further Reading 29 | 30 | See the [Wiki](https://github.com/samuelgr/Xidi/wiki) for complete documentation. 31 | -------------------------------------------------------------------------------- /Resources/DInput.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samuelgr/Xidi/faff5c7fa9f5189637dfb513d1143f362b44581a/Resources/DInput.h -------------------------------------------------------------------------------- /Resources/DInput.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samuelgr/Xidi/faff5c7fa9f5189637dfb513d1143f362b44581a/Resources/DInput.rc -------------------------------------------------------------------------------- /Resources/DInput8.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samuelgr/Xidi/faff5c7fa9f5189637dfb513d1143f362b44581a/Resources/DInput8.h -------------------------------------------------------------------------------- /Resources/DInput8.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samuelgr/Xidi/faff5c7fa9f5189637dfb513d1143f362b44581a/Resources/DInput8.rc -------------------------------------------------------------------------------- /Resources/HookModule.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samuelgr/Xidi/faff5c7fa9f5189637dfb513d1143f362b44581a/Resources/HookModule.h -------------------------------------------------------------------------------- /Resources/HookModule.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samuelgr/Xidi/faff5c7fa9f5189637dfb513d1143f362b44581a/Resources/HookModule.rc -------------------------------------------------------------------------------- /Resources/WinMM.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samuelgr/Xidi/faff5c7fa9f5189637dfb513d1143f362b44581a/Resources/WinMM.h -------------------------------------------------------------------------------- /Resources/WinMM.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samuelgr/Xidi/faff5c7fa9f5189637dfb513d1143f362b44581a/Resources/WinMM.rc -------------------------------------------------------------------------------- /Resources/Xidi.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samuelgr/Xidi/faff5c7fa9f5189637dfb513d1143f362b44581a/Resources/Xidi.h -------------------------------------------------------------------------------- /Resources/Xidi.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samuelgr/Xidi/faff5c7fa9f5189637dfb513d1143f362b44581a/Resources/Xidi.rc -------------------------------------------------------------------------------- /Source/ApiDirectInput.cpp: -------------------------------------------------------------------------------- 1 | /*************************************************************************************************** 2 | * Xidi 3 | * DirectInput interface for XInput controllers. 4 | *************************************************************************************************** 5 | * Authored by Samuel Grossman 6 | * Copyright (c) 2016-2025 7 | ***********************************************************************************************//** 8 | * @file ApiDirectInput.cpp 9 | * Pulls in all DirectInput GUID definitions to avoid linking with the DirectInput library. 10 | **************************************************************************************************/ 11 | 12 | // Defining GUIDs in this file depends on the below header file inclusion order. First the 13 | // preprocessor symbols need to be set so that GUID variables are defined rather than referenced 14 | // externally, and then the actual DirectInput-related GUID definitions need to be included. 15 | 16 | // clang-format off 17 | 18 | #include 19 | #include "ApiDirectInput.h" 20 | 21 | // clang-format on 22 | -------------------------------------------------------------------------------- /Source/ApiGUID.cpp: -------------------------------------------------------------------------------- 1 | /*************************************************************************************************** 2 | * Xidi 3 | * DirectInput interface for XInput controllers. 4 | *************************************************************************************************** 5 | * Authored by Samuel Grossman 6 | * Copyright (c) 2016-2025 7 | ***********************************************************************************************//** 8 | * @file ApiGUID.cpp 9 | * Implementation of helpers for integrating GUID types into the standard template library. 10 | **************************************************************************************************/ 11 | 12 | #pragma once 13 | 14 | #include "ApiGUID.h" 15 | 16 | #include 17 | #include 18 | #include 19 | 20 | size_t std::hash::operator()(REFGUID keyval) const 21 | { 22 | static_assert( 23 | 0 == (sizeof(GUID) % sizeof(size_t)), "GUID size is not aligned with the piece size."); 24 | 25 | constexpr int kNumPieces = sizeof(GUID) / sizeof(size_t); 26 | static_assert(kNumPieces >= 1, "GUID size is too small compared to the piece size."); 27 | 28 | const size_t* rawGUID = (const size_t*)&keyval; 29 | std::hash hasher; 30 | 31 | size_t hash = 0; 32 | for (int i = 0; i < kNumPieces; ++i) 33 | hash ^= hasher(rawGUID[i]); 34 | 35 | return hash; 36 | } 37 | 38 | bool std::equal_to::operator()(REFGUID lhs, REFGUID rhs) const 39 | { 40 | return (memcmp(&lhs, &rhs, sizeof(GUID)) == 0); 41 | } 42 | 43 | bool std::less::operator()(REFGUID lhs, REFGUID rhs) const 44 | { 45 | return (memcmp(&lhs, &rhs, sizeof(GUID)) < 0); 46 | } 47 | 48 | template struct std::hash; 49 | template struct std::equal_to; 50 | template struct std::less; 51 | -------------------------------------------------------------------------------- /Source/DllMain.cpp: -------------------------------------------------------------------------------- 1 | /*************************************************************************************************** 2 | * Xidi 3 | * DirectInput interface for XInput controllers. 4 | *************************************************************************************************** 5 | * Authored by Samuel Grossman 6 | * Copyright (c) 2016-2025 7 | ***********************************************************************************************//** 8 | * @file DllMain.cpp 9 | * Entry point when loading or unloading this dynamic library. 10 | **************************************************************************************************/ 11 | 12 | #include "ApiWindows.h" 13 | #include "Globals.h" 14 | 15 | /// Performs library initialization and teardown functions. 16 | /// Invoked automatically by the operating system. 17 | /// Refer to Windows documentation for more information. 18 | /// @param [in] hModule Instance handle for this library. 19 | /// @param [in] ulReasonForCall Specifies the event that caused this function to be invoked. 20 | /// @param [in] lpReserved Reserved. 21 | /// @return `TRUE` if this function successfully initialized or uninitialized this library, `FALSE` 22 | /// otherwise. 23 | BOOL APIENTRY DllMain(HMODULE hModule, DWORD ulReasonForCall, LPVOID lpReserved) 24 | { 25 | switch (ulReasonForCall) 26 | { 27 | case DLL_PROCESS_ATTACH: 28 | Xidi::Globals::Initialize(); 29 | break; 30 | 31 | case DLL_THREAD_ATTACH: 32 | break; 33 | 34 | case DLL_THREAD_DETACH: 35 | break; 36 | 37 | case DLL_PROCESS_DETACH: 38 | break; 39 | } 40 | 41 | return TRUE; 42 | } 43 | -------------------------------------------------------------------------------- /Source/HookModuleMain.cpp: -------------------------------------------------------------------------------- 1 | /*************************************************************************************************** 2 | * Xidi 3 | * DirectInput interface for XInput controllers. 4 | *************************************************************************************************** 5 | * Authored by Samuel Grossman 6 | * Copyright (c) 2016-2025 7 | ***********************************************************************************************//** 8 | * @file HookModuleMain.cpp 9 | * Entry point when injecting Xidi as a hook module. 10 | **************************************************************************************************/ 11 | 12 | #include 13 | 14 | #include "SetHooks.h" 15 | 16 | HOOKSHOT_HOOK_MODULE_ENTRY(hookshot) 17 | { 18 | Xidi::SetHooksDirectInput(hookshot); 19 | Xidi::SetHooksWinMM(hookshot); 20 | } 21 | -------------------------------------------------------------------------------- /Source/SetHooks.cpp: -------------------------------------------------------------------------------- 1 | /*************************************************************************************************** 2 | * Xidi 3 | * DirectInput interface for XInput controllers. 4 | *************************************************************************************************** 5 | * Authored by Samuel Grossman 6 | * Copyright (c) 2016-2025 7 | ***********************************************************************************************//** 8 | * @file SetHooksWinMM.cpp 9 | * Implementation of support functionality for setting hooks. 10 | **************************************************************************************************/ 11 | 12 | #include "SetHooks.h" 13 | 14 | #include 15 | #include 16 | 17 | namespace Xidi 18 | { 19 | void OutputSetHookResult(const wchar_t* functionName, Hookshot::EResult setHookResult) 20 | { 21 | if (Hookshot::SuccessfulResult(setHookResult)) 22 | Infra::Message::OutputFormatted( 23 | Infra::Message::ESeverity::Info, L"Successfully set hook for %s.", functionName); 24 | else 25 | Infra::Message::OutputFormatted( 26 | Infra::Message::ESeverity::Error, 27 | L"Failed (Hookshot::EResult = %u) to set hook for %s.", 28 | (unsigned int)setHookResult, 29 | functionName); 30 | } 31 | } // namespace Xidi 32 | -------------------------------------------------------------------------------- /Source/SetHooksDirectInput.cpp: -------------------------------------------------------------------------------- 1 | /*************************************************************************************************** 2 | * Xidi 3 | * DirectInput interface for XInput controllers. 4 | *************************************************************************************************** 5 | * Authored by Samuel Grossman 6 | * Copyright (c) 2016-2025 7 | ***********************************************************************************************//** 8 | * @file SetHooksDirectInput.cpp 9 | * Implementation of all functionality for setting DirectInput hooks. 10 | **************************************************************************************************/ 11 | 12 | #include 13 | #include 14 | 15 | #include "SetHooks.h" 16 | 17 | namespace Xidi 18 | { 19 | void SetHooksDirectInput(Hookshot::IHookshot* hookshot) 20 | { 21 | Infra::Message::Output( 22 | Infra::Message::ESeverity::Info, L"Beginning to set hooks for DirectInput."); 23 | OutputSetHookResult(L"CoCreateInstance", StaticHook_CoCreateInstance::SetHook(hookshot)); 24 | } 25 | } // namespace Xidi 26 | -------------------------------------------------------------------------------- /Source/Test/TestMain.cpp: -------------------------------------------------------------------------------- 1 | /*************************************************************************************************** 2 | * Xidi 3 | * DirectInput interface for XInput controllers. 4 | *************************************************************************************************** 5 | * Authored by Samuel Grossman 6 | * Copyright (c) 2016-2025 7 | ***********************************************************************************************//** 8 | * @file TestMain.cpp 9 | * Entry point for the test executable. 10 | **************************************************************************************************/ 11 | 12 | #include 13 | 14 | #include "Globals.h" 15 | 16 | int wmain(int argc, const wchar_t* argv[]) 17 | { 18 | return Infra::Test::Harness::RunTestsWithMatchingPrefix(((argc > 1) ? argv[1] : L"")); 19 | } 20 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/LICENSE_1_0.txt: -------------------------------------------------------------------------------- 1 | Boost Software License - Version 1.0 - August 17th, 2003 2 | 3 | Permission is hereby granted, free of charge, to any person or organization 4 | obtaining a copy of the software and accompanying documentation covered by 5 | this license (the "Software") to use, reproduce, display, distribute, 6 | execute, and transmit the Software, and to prepare derivative works of the 7 | Software, and to permit third-parties to whom the Software is furnished to 8 | do so, all subject to the following: 9 | 10 | The copyright notices in the Software and this entire statement, including 11 | the above license grant, this restriction and the following disclaimer, 12 | must be included in all copies of the Software, in whole or in part, and 13 | all derivative works of the Software, unless such copies or derivative 14 | works are solely in the form of machine-executable object code generated by 15 | a source language processor. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 20 | SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 21 | FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 22 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 | DEALINGS IN THE SOFTWARE. 24 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/README.md: -------------------------------------------------------------------------------- 1 | # Boost C++ Libraries 2 | 3 | The Boost project provides free peer-reviewed portable C++ source libraries. 4 | 5 | We emphasize libraries that work well with the C++ Standard Library. Boost 6 | libraries are intended to be widely useful, and usable across a broad spectrum 7 | of applications. The Boost license encourages both commercial and non-commercial use 8 | and does not require attribution for binary use. 9 | 10 | The project website is www.boost.org, where you can obtain more information and 11 | [download](https://www.boost.org/users/download/) the current release. 12 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/circular_buffer.hpp: -------------------------------------------------------------------------------- 1 | // Circular buffer library header file. 2 | 3 | // Copyright (c) 2003-2008 Jan Gaspar 4 | 5 | // Use, modification, and distribution is subject to the Boost Software 6 | // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt) 8 | 9 | // See www.boost.org/libs/circular_buffer for documentation. 10 | 11 | /*! @file 12 | Includes 13 | */ 14 | 15 | #if !defined(BOOST_CIRCULAR_BUFFER_HPP) 16 | #define BOOST_CIRCULAR_BUFFER_HPP 17 | 18 | #if defined(_MSC_VER) 19 | #pragma once 20 | #endif 21 | 22 | #include 23 | #include 24 | #include 25 | 26 | /*! Debug support control. */ 27 | #if !defined(BOOST_CB_ENABLE_DEBUG) 28 | #define BOOST_CB_ENABLE_DEBUG 0 29 | #endif 30 | 31 | /*! INTERNAL ONLY */ 32 | #if BOOST_CB_ENABLE_DEBUG 33 | #include 34 | #define BOOST_CB_ASSERT(Expr) BOOST_ASSERT(Expr) 35 | #else 36 | #define BOOST_CB_ASSERT(Expr) ((void)0) 37 | #endif 38 | 39 | /*! INTERNAL ONLY */ 40 | #if BOOST_WORKAROUND(BOOST_BORLANDC, <= 0x0550) || BOOST_WORKAROUND(__MWERKS__, <= 0x2407) 41 | #define BOOST_CB_IS_CONVERTIBLE(Iterator, Type) ((void)0) 42 | #else 43 | #include 44 | #include 45 | #define BOOST_CB_IS_CONVERTIBLE(Iterator, Type) \ 46 | BOOST_STATIC_ASSERT((is_convertible::value_type, Type>::value)) 47 | #endif 48 | 49 | /*! INTERNAL ONLY */ 50 | #if defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS) 51 | #define BOOST_CB_ASSERT_TEMPLATED_ITERATOR_CONSTRUCTORS BOOST_STATIC_ASSERT(false); 52 | #else 53 | #define BOOST_CB_ASSERT_TEMPLATED_ITERATOR_CONSTRUCTORS ((void)0); 54 | #endif 55 | 56 | #include 57 | #include 58 | #include 59 | #include 60 | 61 | #undef BOOST_CB_ASSERT_TEMPLATED_ITERATOR_CONSTRUCTORS 62 | #undef BOOST_CB_IS_CONVERTIBLE 63 | #undef BOOST_CB_ASSERT 64 | 65 | #endif // #if !defined(BOOST_CIRCULAR_BUFFER_HPP) 66 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/circular_buffer_fwd.hpp: -------------------------------------------------------------------------------- 1 | // Forward declaration of the circular buffer and its adaptor. 2 | 3 | // Copyright (c) 2003-2008 Jan Gaspar 4 | 5 | // Use, modification, and distribution is subject to the Boost Software 6 | // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt) 8 | 9 | // See www.boost.org/libs/circular_buffer for documentation. 10 | 11 | #if !defined(BOOST_CIRCULAR_BUFFER_FWD_HPP) 12 | #define BOOST_CIRCULAR_BUFFER_FWD_HPP 13 | 14 | #if defined(_MSC_VER) 15 | #pragma once 16 | #endif 17 | 18 | #include 19 | #if !defined(BOOST_NO_STD_ALLOCATOR) 20 | #include 21 | #else 22 | #include 23 | #endif 24 | 25 | namespace boost { 26 | 27 | #if !defined(BOOST_NO_STD_ALLOCATOR) 28 | #define BOOST_CB_DEFAULT_ALLOCATOR(T) std::allocator 29 | #else 30 | #define BOOST_CB_DEFAULT_ALLOCATOR(T) BOOST_DEDUCED_TYPENAME std::vector::allocator_type 31 | #endif 32 | 33 | template 34 | class circular_buffer; 35 | 36 | template 37 | class circular_buffer_space_optimized; 38 | 39 | #undef BOOST_CB_DEFAULT_ALLOCATOR 40 | 41 | } // namespace boost 42 | 43 | #endif // #if !defined(BOOST_CIRCULAR_BUFFER_FWD_HPP) 44 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/concept/assert.hpp: -------------------------------------------------------------------------------- 1 | // Copyright David Abrahams 2006. Distributed under the Boost 2 | // Software License, Version 1.0. (See accompanying 3 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 4 | #ifndef BOOST_CONCEPT_ASSERT_DWA2006430_HPP 5 | # define BOOST_CONCEPT_ASSERT_DWA2006430_HPP 6 | 7 | # include 8 | # include 9 | 10 | // The old protocol used a constraints() member function in concept 11 | // checking classes. If the compiler supports SFINAE, we can detect 12 | // that function and seamlessly support the old concept checking 13 | // classes. In this release, backward compatibility with the old 14 | // concept checking classes is enabled by default, where available. 15 | // The old protocol is deprecated, though, and backward compatibility 16 | // will no longer be the default in the next release. 17 | 18 | # if !defined(BOOST_NO_OLD_CONCEPT_SUPPORT) \ 19 | && !defined(BOOST_NO_SFINAE) \ 20 | \ 21 | && !(BOOST_WORKAROUND(__GNUC__, == 3) && BOOST_WORKAROUND(__GNUC_MINOR__, < 4)) 22 | 23 | // Note: gcc-2.96 through 3.3.x have some SFINAE, but no ability to 24 | // check for the presence of particularmember functions. 25 | 26 | # define BOOST_OLD_CONCEPT_SUPPORT 27 | 28 | # endif 29 | 30 | # ifdef BOOST_MSVC 31 | # include 32 | # elif BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x564)) 33 | # include 34 | # else 35 | # include 36 | # endif 37 | 38 | // Usage, in class or function context: 39 | // 40 | // BOOST_CONCEPT_ASSERT((UnaryFunctionConcept)); 41 | // 42 | # define BOOST_CONCEPT_ASSERT(ModelInParens) \ 43 | BOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens) 44 | 45 | #endif // BOOST_CONCEPT_ASSERT_DWA2006430_HPP 46 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/concept/detail/backward_compatibility.hpp: -------------------------------------------------------------------------------- 1 | // Copyright David Abrahams 2009. Distributed under the Boost 2 | // Software License, Version 1.0. (See accompanying 3 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 4 | #ifndef BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP 5 | # define BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP 6 | 7 | namespace boost 8 | { 9 | namespace concepts {} 10 | 11 | # if defined(BOOST_HAS_CONCEPTS) && !defined(BOOST_CONCEPT_NO_BACKWARD_KEYWORD) 12 | namespace concept = concepts; 13 | # endif 14 | } // namespace boost::concept 15 | 16 | #endif // BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP 17 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/concept/detail/borland.hpp: -------------------------------------------------------------------------------- 1 | // Copyright David Abrahams 2006. Distributed under the Boost 2 | // Software License, Version 1.0. (See accompanying 3 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 4 | #ifndef BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP 5 | # define BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP 6 | 7 | # include 8 | # include 9 | 10 | namespace boost { namespace concepts { 11 | 12 | template 13 | struct require; 14 | 15 | template 16 | struct require 17 | { 18 | enum { instantiate = sizeof((((Model*)0)->~Model()), 3) }; 19 | }; 20 | 21 | # define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \ 22 | enum \ 23 | { \ 24 | BOOST_PP_CAT(boost_concept_check,__LINE__) = \ 25 | boost::concepts::require::instantiate \ 26 | } 27 | 28 | }} // namespace boost::concept 29 | 30 | #endif // BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP 31 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/concept/detail/concept_def.hpp: -------------------------------------------------------------------------------- 1 | // Copyright David Abrahams 2006. Distributed under the Boost 2 | // Software License, Version 1.0. (See accompanying 3 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 4 | #ifndef BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP 5 | # define BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP 6 | # include 7 | # include 8 | # include 9 | # include 10 | #endif // BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP 11 | 12 | // BOOST_concept(SomeName, (p1)(p2)...(pN)) 13 | // 14 | // Expands to "template struct SomeName" 15 | // 16 | // Also defines an equivalent SomeNameConcept for backward compatibility. 17 | // Maybe in the next release we can kill off the "Concept" suffix for good. 18 | # define BOOST_concept(name, params) \ 19 | template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \ 20 | struct name; /* forward declaration */ \ 21 | \ 22 | template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \ 23 | struct BOOST_PP_CAT(name,Concept) \ 24 | : name< BOOST_PP_SEQ_ENUM(params) > \ 25 | { \ 26 | }; \ 27 | \ 28 | template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \ 29 | struct name 30 | 31 | // Helper for BOOST_concept, above. 32 | # define BOOST_CONCEPT_typename(r, ignored, index, t) \ 33 | BOOST_PP_COMMA_IF(index) typename t 34 | 35 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/concept/detail/concept_undef.hpp: -------------------------------------------------------------------------------- 1 | // Copyright David Abrahams 2006. Distributed under the Boost 2 | // Software License, Version 1.0. (See accompanying 3 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 4 | # undef BOOST_concept_typename 5 | # undef BOOST_concept 6 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/concept/detail/general.hpp: -------------------------------------------------------------------------------- 1 | // Copyright David Abrahams 2006. Distributed under the Boost 2 | // Software License, Version 1.0. (See accompanying 3 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 4 | #ifndef BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP 5 | # define BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP 6 | 7 | # include 8 | # include 9 | # include 10 | 11 | # ifdef BOOST_OLD_CONCEPT_SUPPORT 12 | # include 13 | # include 14 | # endif 15 | 16 | // This implementation works on Comeau and GCC, all the way back to 17 | // 2.95 18 | namespace boost { namespace concepts { 19 | 20 | template 21 | struct requirement_; 22 | 23 | namespace detail 24 | { 25 | template struct instantiate {}; 26 | } 27 | 28 | template 29 | struct requirement 30 | { 31 | static void failed() { ((Model*)0)->~Model(); } 32 | }; 33 | 34 | struct failed {}; 35 | 36 | template 37 | struct requirement 38 | { 39 | static void failed() { ((Model*)0)->~Model(); } 40 | }; 41 | 42 | # ifdef BOOST_OLD_CONCEPT_SUPPORT 43 | 44 | template 45 | struct constraint 46 | { 47 | static void failed() { ((Model*)0)->constraints(); } 48 | }; 49 | 50 | template 51 | struct requirement_ 52 | : boost::conditional< 53 | concepts::not_satisfied::value 54 | , constraint 55 | , requirement 56 | >::type 57 | {}; 58 | 59 | # else 60 | 61 | // For GCC-2.x, these can't have exactly the same name 62 | template 63 | struct requirement_ 64 | : requirement 65 | {}; 66 | 67 | # endif 68 | 69 | # define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \ 70 | typedef ::boost::concepts::detail::instantiate< \ 71 | &::boost::concepts::requirement_::failed> \ 72 | BOOST_PP_CAT(boost_concept_check,__LINE__) \ 73 | BOOST_ATTRIBUTE_UNUSED 74 | 75 | }} 76 | 77 | #endif // BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP 78 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/concept/detail/has_constraints.hpp: -------------------------------------------------------------------------------- 1 | // Copyright David Abrahams 2006. Distributed under the Boost 2 | // Software License, Version 1.0. (See accompanying 3 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 4 | #ifndef BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP 5 | # define BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP 6 | 7 | # include 8 | # include 9 | # include 10 | 11 | namespace boost { namespace concepts { 12 | 13 | namespace detail 14 | { 15 | 16 | // Here we implement the metafunction that detects whether a 17 | // constraints metafunction exists 18 | typedef char yes; 19 | typedef char (&no)[2]; 20 | 21 | template 22 | struct wrap_constraints {}; 23 | 24 | #if BOOST_WORKAROUND(__SUNPRO_CC, <= 0x580) || defined(__CUDACC__) 25 | // Work around the following bogus error in Sun Studio 11, by 26 | // turning off the has_constraints function entirely: 27 | // Error: complex expression not allowed in dependent template 28 | // argument expression 29 | inline no has_constraints_(...); 30 | #else 31 | template 32 | inline yes has_constraints_(Model*, wrap_constraints* = 0); 33 | inline no has_constraints_(...); 34 | #endif 35 | } 36 | 37 | // This would be called "detail::has_constraints," but it has a strong 38 | // tendency to show up in error messages. 39 | template 40 | struct not_satisfied 41 | { 42 | BOOST_STATIC_CONSTANT( 43 | bool 44 | , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) ); 45 | typedef boost::integral_constant type; 46 | }; 47 | 48 | }} // namespace boost::concepts::detail 49 | 50 | #endif // BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP 51 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/concept/usage.hpp: -------------------------------------------------------------------------------- 1 | // Copyright David Abrahams 2006. Distributed under the Boost 2 | // Software License, Version 1.0. (See accompanying 3 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 4 | #ifndef BOOST_CONCEPT_USAGE_DWA2006919_HPP 5 | # define BOOST_CONCEPT_USAGE_DWA2006919_HPP 6 | 7 | # include 8 | # include 9 | # include 10 | 11 | namespace boost { namespace concepts { 12 | 13 | template 14 | struct usage_requirements 15 | { 16 | ~usage_requirements() { ((Model*)0)->~Model(); } 17 | }; 18 | 19 | # if BOOST_WORKAROUND(__GNUC__, <= 3) 20 | 21 | # define BOOST_CONCEPT_USAGE(model) \ 22 | model(); /* at least 2.96 and 3.4.3 both need this :( */ \ 23 | BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements)); \ 24 | ~model() 25 | 26 | # else 27 | 28 | # define BOOST_CONCEPT_USAGE(model) \ 29 | BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements)); \ 30 | ~model() 31 | 32 | # endif 33 | 34 | }} // namespace boost::concepts 35 | 36 | #endif // BOOST_CONCEPT_USAGE_DWA2006919_HPP 37 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/abi/borland_prefix.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2003. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // for C++ Builder the following options effect the ABI: 7 | // 8 | // -b (on or off - effect emum sizes) 9 | // -Vx (on or off - empty members) 10 | // -Ve (on or off - empty base classes) 11 | // -aX (alignment - 5 options). 12 | // -pX (Calling convention - 4 options) 13 | // -VmX (member pointer size and layout - 5 options) 14 | // -VC (on or off, changes name mangling) 15 | // -Vl (on or off, changes struct layout). 16 | 17 | // In addition the following warnings are sufficiently annoying (and 18 | // unfixable) to have them turned off by default: 19 | // 20 | // 8027 - functions containing [for|while] loops are not expanded inline 21 | // 8026 - functions taking class by value arguments are not expanded inline 22 | 23 | #pragma nopushoptwarn 24 | # pragma option push -a8 -Vx- -Ve- -b- -pc -Vmv -VC- -Vl- -w-8027 -w-8026 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/abi/borland_suffix.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2003. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | # pragma option pop 7 | #pragma nopushoptwarn 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/abi/msvc_prefix.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2003. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // 7 | // Boost binaries are built with the compiler's default ABI settings, 8 | // if the user changes their default alignment in the VS IDE then their 9 | // code will no longer be binary compatible with the bjam built binaries 10 | // unless this header is included to force Boost code into a consistent ABI. 11 | // 12 | // Note that inclusion of this header is only necessary for libraries with 13 | // separate source, header only libraries DO NOT need this as long as all 14 | // translation units are built with the same options. 15 | // 16 | #if defined(_M_X64) 17 | # pragma pack(push,16) 18 | #else 19 | # pragma pack(push,8) 20 | #endif 21 | 22 | 23 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/abi/msvc_suffix.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2003. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #pragma pack(pop) 7 | 8 | 9 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/abi_prefix.hpp: -------------------------------------------------------------------------------- 1 | // abi_prefix header -------------------------------------------------------// 2 | 3 | // (c) Copyright John Maddock 2003 4 | 5 | // Use, modification and distribution are subject to the Boost Software License, 6 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt). 8 | 9 | #ifndef BOOST_CONFIG_ABI_PREFIX_HPP 10 | # define BOOST_CONFIG_ABI_PREFIX_HPP 11 | #else 12 | # error double inclusion of header boost/config/abi_prefix.hpp is an error 13 | #endif 14 | 15 | #include 16 | 17 | // this must occur after all other includes and before any code appears: 18 | #ifdef BOOST_HAS_ABI_HEADERS 19 | # include BOOST_ABI_PREFIX 20 | #endif 21 | 22 | #if defined( BOOST_BORLANDC ) 23 | #pragma nopushoptwarn 24 | #endif 25 | 26 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/abi_suffix.hpp: -------------------------------------------------------------------------------- 1 | // abi_sufffix header -------------------------------------------------------// 2 | 3 | // (c) Copyright John Maddock 2003 4 | 5 | // Use, modification and distribution are subject to the Boost Software License, 6 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt). 8 | 9 | // This header should be #included AFTER code that was preceded by a #include 10 | // . 11 | 12 | #ifndef BOOST_CONFIG_ABI_PREFIX_HPP 13 | # error Header boost/config/abi_suffix.hpp must only be used after boost/config/abi_prefix.hpp 14 | #else 15 | # undef BOOST_CONFIG_ABI_PREFIX_HPP 16 | #endif 17 | 18 | // the suffix header occurs after all of our code: 19 | #ifdef BOOST_HAS_ABI_HEADERS 20 | # include BOOST_ABI_SUFFIX 21 | #endif 22 | 23 | #if defined( BOOST_BORLANDC ) 24 | #pragma nopushoptwarn 25 | #endif 26 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/compiler/comeau.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001. 2 | // (C) Copyright Douglas Gregor 2001. 3 | // (C) Copyright Peter Dimov 2001. 4 | // (C) Copyright Aleksey Gurtovoy 2003. 5 | // (C) Copyright Beman Dawes 2003. 6 | // (C) Copyright Jens Maurer 2003. 7 | // Use, modification and distribution are subject to the 8 | // Boost Software License, Version 1.0. (See accompanying file 9 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 10 | 11 | // See http://www.boost.org for most recent version. 12 | 13 | // Comeau C++ compiler setup: 14 | 15 | #include 16 | 17 | #if (__COMO_VERSION__ <= 4245) 18 | 19 | # if defined(_MSC_VER) && _MSC_VER <= 1300 20 | # if _MSC_VER > 100 21 | // only set this in non-strict mode: 22 | # define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP 23 | # endif 24 | # endif 25 | 26 | // Void returns don't work when emulating VC 6 (Peter Dimov) 27 | // TODO: look up if this doesn't apply to the whole 12xx range 28 | # if defined(_MSC_VER) && (_MSC_VER < 1300) 29 | # define BOOST_NO_VOID_RETURNS 30 | # endif 31 | 32 | #endif // version 4245 33 | 34 | // 35 | // enable __int64 support in VC emulation mode 36 | // 37 | # if defined(_MSC_VER) && (_MSC_VER >= 1200) 38 | # define BOOST_HAS_MS_INT64 39 | # endif 40 | 41 | #define BOOST_COMPILER "Comeau compiler version " BOOST_STRINGIZE(__COMO_VERSION__) 42 | 43 | // 44 | // versions check: 45 | // we don't know Comeau prior to version 4245: 46 | #if __COMO_VERSION__ < 4245 47 | # error "Compiler not configured - please reconfigure" 48 | #endif 49 | // 50 | // last known and checked version is 4245: 51 | #if (__COMO_VERSION__ > 4245) 52 | # if defined(BOOST_ASSERT_CONFIG) 53 | # error "boost: Unknown compiler version - please run the configure tests and report the results" 54 | # endif 55 | #endif 56 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/compiler/compaq_cxx.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2003. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // Tru64 C++ compiler setup (now HP): 9 | 10 | #define BOOST_COMPILER "HP Tru64 C++ " BOOST_STRINGIZE(__DECCXX_VER) 11 | 12 | #include 13 | 14 | // 15 | // versions check: 16 | // Nothing to do here? 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/compiler/diab.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Brian Kuhl 2016. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // Check this is a recent EDG based compiler, otherwise we don't support it here: 7 | 8 | 9 | #ifndef __EDG_VERSION__ 10 | # error "Unknown Diab compiler version - please run the configure tests and report the results" 11 | #endif 12 | 13 | #include "boost/config/compiler/common_edg.hpp" 14 | 15 | #define BOOST_NO_TWO_PHASE_NAME_LOOKUP 16 | #define BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS 17 | 18 | #define BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE 19 | #define BOOST_LOG_NO_MEMBER_TEMPLATE_FRIENDS 20 | #define BOOST_REGEX_NO_EXTERNAL_TEMPLATES 21 | 22 | #define BOOST_NO_CXX11_HDR_INITIALIZER_LIST 23 | #define BOOST_NO_CXX11_HDR_CODECVT 24 | #define BOOST_NO_CXX11_NUMERIC_LIMITS 25 | 26 | #define BOOST_COMPILER "Wind River Diab " BOOST_STRINGIZE(__VERSION_NUMBER__) 27 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/compiler/greenhills.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // Greenhills C++ compiler setup: 9 | 10 | #define BOOST_COMPILER "Greenhills C++ version " BOOST_STRINGIZE(__ghs) 11 | 12 | #include 13 | 14 | // 15 | // versions check: 16 | // we don't support Greenhills prior to version 0: 17 | #if __ghs < 0 18 | # error "Compiler not supported or configured - please reconfigure" 19 | #endif 20 | // 21 | // last known and checked version is 0: 22 | #if (__ghs > 0) 23 | # if defined(BOOST_ASSERT_CONFIG) 24 | # error "boost: Unknown compiler version - please run the configure tests and report the results" 25 | # endif 26 | #endif 27 | 28 | 29 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/compiler/kai.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001. 2 | // (C) Copyright David Abrahams 2002. 3 | // (C) Copyright Aleksey Gurtovoy 2002. 4 | // Use, modification and distribution are subject to the 5 | // Boost Software License, Version 1.0. (See accompanying file 6 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | 8 | // See http://www.boost.org for most recent version. 9 | 10 | // Kai C++ compiler setup: 11 | 12 | #include 13 | 14 | # if (__KCC_VERSION <= 4001) || !defined(BOOST_STRICT_CONFIG) 15 | // at least on Sun, the contents of is not in namespace std 16 | # define BOOST_NO_STDC_NAMESPACE 17 | # endif 18 | 19 | // see also common_edg.hpp which needs a special check for __KCC 20 | # if !defined(_EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS) 21 | # define BOOST_NO_EXCEPTIONS 22 | # endif 23 | 24 | // 25 | // last known and checked version is 4001: 26 | #if (__KCC_VERSION > 4001) 27 | # if defined(BOOST_ASSERT_CONFIG) 28 | # error "boost: Unknown compiler version - please run the configure tests and report the results" 29 | # endif 30 | #endif 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/compiler/nvcc.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Eric Jourdanneau, Joel Falcou 2010 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // NVIDIA CUDA C++ compiler setup 9 | 10 | #ifndef BOOST_COMPILER 11 | # define BOOST_COMPILER "NVIDIA CUDA C++ Compiler" 12 | #endif 13 | 14 | #if defined(__CUDACC_VER_MAJOR__) && defined(__CUDACC_VER_MINOR__) && defined(__CUDACC_VER_BUILD__) 15 | # define BOOST_CUDA_VERSION (__CUDACC_VER_MAJOR__ * 1000000 + __CUDACC_VER_MINOR__ * 10000 + __CUDACC_VER_BUILD__) 16 | #else 17 | // We don't really know what the CUDA version is, but it's definitely before 7.5: 18 | # define BOOST_CUDA_VERSION 7000000 19 | #endif 20 | 21 | // NVIDIA Specific support 22 | // BOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device 23 | #define BOOST_GPU_ENABLED __host__ __device__ 24 | 25 | // A bug in version 7.0 of CUDA prevents use of variadic templates in some occasions 26 | // https://svn.boost.org/trac/boost/ticket/11897 27 | // This is fixed in 7.5. As the following version macro was introduced in 7.5 an existance 28 | // check is enough to detect versions < 7.5 29 | #if BOOST_CUDA_VERSION < 7050000 30 | # define BOOST_NO_CXX11_VARIADIC_TEMPLATES 31 | #endif 32 | // The same bug is back again in 8.0: 33 | #if (BOOST_CUDA_VERSION > 8000000) && (BOOST_CUDA_VERSION < 8010000) 34 | # define BOOST_NO_CXX11_VARIADIC_TEMPLATES 35 | #endif 36 | // CUDA (8.0) has no constexpr support in msvc mode: 37 | #if defined(_MSC_VER) && (BOOST_CUDA_VERSION < 9000000) 38 | # define BOOST_NO_CXX11_CONSTEXPR 39 | #endif 40 | 41 | #ifdef __CUDACC__ 42 | // 43 | // When compiing .cu files, there's a bunch of stuff that doesn't work with msvc: 44 | // 45 | #if defined(_MSC_VER) 46 | # define BOOST_NO_CXX14_DIGIT_SEPARATORS 47 | # define BOOST_NO_CXX11_UNICODE_LITERALS 48 | #endif 49 | // 50 | // And this one effects the NVCC front end, 51 | // See https://svn.boost.org/trac/boost/ticket/13049 52 | // 53 | #if (BOOST_CUDA_VERSION >= 8000000) && (BOOST_CUDA_VERSION < 8010000) 54 | # define BOOST_NO_CXX11_NOEXCEPT 55 | #endif 56 | 57 | #endif 58 | 59 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/compiler/pgi.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Noel Belcourt 2007. 2 | // Copyright 2017, NVIDIA CORPORATION. 3 | // Use, modification and distribution are subject to the 4 | // Boost Software License, Version 1.0. (See accompanying file 5 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | 7 | // See http://www.boost.org for most recent version. 8 | 9 | // PGI C++ compiler setup: 10 | 11 | #define BOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__ 12 | #define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION) 13 | 14 | // PGI is mostly GNU compatible. So start with that. 15 | #include 16 | 17 | // Now adjust for things that are different. 18 | 19 | // __float128 is a typedef, not a distinct type. 20 | #undef BOOST_HAS_FLOAT128 21 | 22 | // __int128 is not supported. 23 | #undef BOOST_HAS_INT128 24 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/compiler/sgi_mipspro.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2002. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // SGI C++ compiler setup: 9 | 10 | #define BOOST_COMPILER "SGI Irix compiler version " BOOST_STRINGIZE(_COMPILER_VERSION) 11 | 12 | #include 13 | 14 | // 15 | // Threading support: 16 | // Turn this on unconditionally here, it will get turned off again later 17 | // if no threading API is detected. 18 | // 19 | #define BOOST_HAS_THREADS 20 | #define BOOST_NO_TWO_PHASE_NAME_LOOKUP 21 | 22 | #undef BOOST_NO_SWPRINTF 23 | #undef BOOST_DEDUCED_TYPENAME 24 | 25 | // 26 | // version check: 27 | // probably nothing to do here? 28 | 29 | 30 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/header_deprecated.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_CONFIG_HEADER_DEPRECATED_HPP_INCLUDED 2 | #define BOOST_CONFIG_HEADER_DEPRECATED_HPP_INCLUDED 3 | 4 | // Copyright 2017 Peter Dimov. 5 | // 6 | // Distributed under the Boost Software License, Version 1.0. 7 | // 8 | // See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt 10 | // 11 | // BOOST_HEADER_DEPRECATED("") 12 | // 13 | // Expands to the equivalent of 14 | // BOOST_PRAGMA_MESSAGE("This header is deprecated. Use instead.") 15 | // 16 | // Note that this header is C compatible. 17 | 18 | #include 19 | 20 | #if defined(BOOST_ALLOW_DEPRECATED_HEADERS) 21 | # define BOOST_HEADER_DEPRECATED(a) 22 | #else 23 | # define BOOST_HEADER_DEPRECATED(a) BOOST_PRAGMA_MESSAGE("This header is deprecated. Use " a " instead.") 24 | #endif 25 | 26 | #endif // BOOST_CONFIG_HEADER_DEPRECATED_HPP_INCLUDED 27 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/helper_macros.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_CONFIG_HELPER_MACROS_HPP_INCLUDED 2 | #define BOOST_CONFIG_HELPER_MACROS_HPP_INCLUDED 3 | 4 | // Copyright 2001 John Maddock. 5 | // Copyright 2017 Peter Dimov. 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // 9 | // See accompanying file LICENSE_1_0.txt or copy at 10 | // http://www.boost.org/LICENSE_1_0.txt 11 | // 12 | // BOOST_STRINGIZE(X) 13 | // BOOST_JOIN(X, Y) 14 | // 15 | // Note that this header is C compatible. 16 | 17 | // 18 | // Helper macro BOOST_STRINGIZE: 19 | // Converts the parameter X to a string after macro replacement 20 | // on X has been performed. 21 | // 22 | #define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X) 23 | #define BOOST_DO_STRINGIZE(X) #X 24 | 25 | // 26 | // Helper macro BOOST_JOIN: 27 | // The following piece of macro magic joins the two 28 | // arguments together, even when one of the arguments is 29 | // itself a macro (see 16.3.1 in C++ standard). The key 30 | // is that macro expansion of macro arguments does not 31 | // occur in BOOST_DO_JOIN2 but does in BOOST_DO_JOIN. 32 | // 33 | #define BOOST_JOIN(X, Y) BOOST_DO_JOIN(X, Y) 34 | #define BOOST_DO_JOIN(X, Y) BOOST_DO_JOIN2(X,Y) 35 | #define BOOST_DO_JOIN2(X, Y) X##Y 36 | 37 | #endif // BOOST_CONFIG_HELPER_MACROS_HPP_INCLUDED 38 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/no_tr1/cmath.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2008. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | // 6 | // The aim of this header is just to include but to do 7 | // so in a way that does not result in recursive inclusion of 8 | // the Boost TR1 components if boost/tr1/tr1/cmath is in the 9 | // include search path. We have to do this to avoid circular 10 | // dependencies: 11 | // 12 | 13 | #ifndef BOOST_CONFIG_CMATH 14 | # define BOOST_CONFIG_CMATH 15 | 16 | # ifndef BOOST_TR1_NO_RECURSION 17 | # define BOOST_TR1_NO_RECURSION 18 | # define BOOST_CONFIG_NO_CMATH_RECURSION 19 | # endif 20 | 21 | # include 22 | 23 | # ifdef BOOST_CONFIG_NO_CMATH_RECURSION 24 | # undef BOOST_TR1_NO_RECURSION 25 | # undef BOOST_CONFIG_NO_CMATH_RECURSION 26 | # endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/no_tr1/complex.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2005. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | // 6 | // The aim of this header is just to include but to do 7 | // so in a way that does not result in recursive inclusion of 8 | // the Boost TR1 components if boost/tr1/tr1/complex is in the 9 | // include search path. We have to do this to avoid circular 10 | // dependencies: 11 | // 12 | 13 | #ifndef BOOST_CONFIG_COMPLEX 14 | # define BOOST_CONFIG_COMPLEX 15 | 16 | # ifndef BOOST_TR1_NO_RECURSION 17 | # define BOOST_TR1_NO_RECURSION 18 | # define BOOST_CONFIG_NO_COMPLEX_RECURSION 19 | # endif 20 | 21 | # include 22 | 23 | # ifdef BOOST_CONFIG_NO_COMPLEX_RECURSION 24 | # undef BOOST_TR1_NO_RECURSION 25 | # undef BOOST_CONFIG_NO_COMPLEX_RECURSION 26 | # endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/no_tr1/functional.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2005. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | // 6 | // The aim of this header is just to include but to do 7 | // so in a way that does not result in recursive inclusion of 8 | // the Boost TR1 components if boost/tr1/tr1/functional is in the 9 | // include search path. We have to do this to avoid circular 10 | // dependencies: 11 | // 12 | 13 | #ifndef BOOST_CONFIG_FUNCTIONAL 14 | # define BOOST_CONFIG_FUNCTIONAL 15 | 16 | # ifndef BOOST_TR1_NO_RECURSION 17 | # define BOOST_TR1_NO_RECURSION 18 | # define BOOST_CONFIG_NO_FUNCTIONAL_RECURSION 19 | # endif 20 | 21 | # include 22 | 23 | # ifdef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION 24 | # undef BOOST_TR1_NO_RECURSION 25 | # undef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION 26 | # endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/no_tr1/memory.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2005. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | // 6 | // The aim of this header is just to include but to do 7 | // so in a way that does not result in recursive inclusion of 8 | // the Boost TR1 components if boost/tr1/tr1/memory is in the 9 | // include search path. We have to do this to avoid circular 10 | // dependencies: 11 | // 12 | 13 | #ifndef BOOST_CONFIG_MEMORY 14 | # define BOOST_CONFIG_MEMORY 15 | 16 | # ifndef BOOST_TR1_NO_RECURSION 17 | # define BOOST_TR1_NO_RECURSION 18 | # define BOOST_CONFIG_NO_MEMORY_RECURSION 19 | # endif 20 | 21 | # include 22 | 23 | # ifdef BOOST_CONFIG_NO_MEMORY_RECURSION 24 | # undef BOOST_TR1_NO_RECURSION 25 | # undef BOOST_CONFIG_NO_MEMORY_RECURSION 26 | # endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/no_tr1/utility.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2005. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | // 6 | // The aim of this header is just to include but to do 7 | // so in a way that does not result in recursive inclusion of 8 | // the Boost TR1 components if boost/tr1/tr1/utility is in the 9 | // include search path. We have to do this to avoid circular 10 | // dependencies: 11 | // 12 | 13 | #ifndef BOOST_CONFIG_UTILITY 14 | # define BOOST_CONFIG_UTILITY 15 | 16 | # ifndef BOOST_TR1_NO_RECURSION 17 | # define BOOST_TR1_NO_RECURSION 18 | # define BOOST_CONFIG_NO_UTILITY_RECURSION 19 | # endif 20 | 21 | # include 22 | 23 | # ifdef BOOST_CONFIG_NO_UTILITY_RECURSION 24 | # undef BOOST_TR1_NO_RECURSION 25 | # undef BOOST_CONFIG_NO_UTILITY_RECURSION 26 | # endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/platform/aix.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2002. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // IBM/Aix specific config options: 9 | 10 | #define BOOST_PLATFORM "IBM Aix" 11 | 12 | #define BOOST_HAS_UNISTD_H 13 | #define BOOST_HAS_NL_TYPES_H 14 | #define BOOST_HAS_NANOSLEEP 15 | #define BOOST_HAS_CLOCK_GETTIME 16 | 17 | // This needs support in "boost/cstdint.hpp" exactly like FreeBSD. 18 | // This platform has header named which includes all 19 | // the things needed. 20 | #define BOOST_HAS_STDINT_H 21 | 22 | // Threading API's: 23 | #define BOOST_HAS_PTHREADS 24 | #define BOOST_HAS_PTHREAD_DELAY_NP 25 | #define BOOST_HAS_SCHED_YIELD 26 | //#define BOOST_HAS_PTHREAD_YIELD 27 | 28 | // boilerplate code: 29 | #include 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/platform/amigaos.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2002. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | #define BOOST_PLATFORM "AmigaOS" 9 | 10 | #define BOOST_DISABLE_THREADS 11 | #define BOOST_NO_CWCHAR 12 | #define BOOST_NO_STD_WSTRING 13 | #define BOOST_NO_INTRINSIC_WCHAR_T 14 | 15 | 16 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/platform/beos.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // BeOS specific config options: 9 | 10 | #define BOOST_PLATFORM "BeOS" 11 | 12 | #define BOOST_NO_CWCHAR 13 | #define BOOST_NO_CWCTYPE 14 | #define BOOST_HAS_UNISTD_H 15 | 16 | #define BOOST_HAS_BETHREADS 17 | 18 | #ifndef BOOST_DISABLE_THREADS 19 | # define BOOST_HAS_THREADS 20 | #endif 21 | 22 | // boilerplate code: 23 | #include 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/platform/cloudabi.hpp: -------------------------------------------------------------------------------- 1 | // Copyright Nuxi, https://nuxi.nl/ 2015. 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #define BOOST_PLATFORM "CloudABI" 7 | 8 | #define BOOST_HAS_DIRENT_H 9 | #define BOOST_HAS_STDINT_H 10 | #define BOOST_HAS_UNISTD_H 11 | 12 | #define BOOST_HAS_CLOCK_GETTIME 13 | #define BOOST_HAS_EXPM1 14 | #define BOOST_HAS_GETTIMEOFDAY 15 | #define BOOST_HAS_LOG1P 16 | #define BOOST_HAS_NANOSLEEP 17 | #define BOOST_HAS_PTHREADS 18 | #define BOOST_HAS_SCHED_YIELD 19 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/platform/cray.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2011. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | 7 | // See http://www.boost.org for most recent version. 8 | 9 | // SGI Irix specific config options: 10 | 11 | #define BOOST_PLATFORM "Cray" 12 | 13 | // boilerplate code: 14 | #define BOOST_HAS_UNISTD_H 15 | #include 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/platform/cygwin.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2003. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // cygwin specific config options: 9 | 10 | #define BOOST_PLATFORM "Cygwin" 11 | #define BOOST_HAS_DIRENT_H 12 | #define BOOST_HAS_LOG1P 13 | #define BOOST_HAS_EXPM1 14 | 15 | // 16 | // Threading API: 17 | // See if we have POSIX threads, if we do use them, otherwise 18 | // revert to native Win threads. 19 | #define BOOST_HAS_UNISTD_H 20 | #include 21 | #if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS) 22 | # define BOOST_HAS_PTHREADS 23 | # define BOOST_HAS_SCHED_YIELD 24 | # define BOOST_HAS_GETTIMEOFDAY 25 | # define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 26 | //# define BOOST_HAS_SIGACTION 27 | #else 28 | # if !defined(BOOST_HAS_WINTHREADS) 29 | # define BOOST_HAS_WINTHREADS 30 | # endif 31 | # define BOOST_HAS_FTIME 32 | #endif 33 | 34 | // 35 | // find out if we have a stdint.h, there should be a better way to do this: 36 | // 37 | #include 38 | #ifdef _STDINT_H 39 | #define BOOST_HAS_STDINT_H 40 | #endif 41 | #if __GNUC__ > 5 && !defined(BOOST_HAS_STDINT_H) 42 | # define BOOST_HAS_STDINT_H 43 | #endif 44 | 45 | #include 46 | #if (CYGWIN_VERSION_API_MAJOR == 0 && CYGWIN_VERSION_API_MINOR < 231) 47 | /// Cygwin has no fenv.h 48 | #define BOOST_NO_FENV_H 49 | #endif 50 | 51 | // Cygwin has it's own which breaks unless the correct compiler flags are used: 52 | #ifndef BOOST_NO_CXX14_HDR_SHARED_MUTEX 53 | #include 54 | #if !(__XSI_VISIBLE >= 500 || __POSIX_VISIBLE >= 200112) 55 | # define BOOST_NO_CXX14_HDR_SHARED_MUTEX 56 | #endif 57 | #endif 58 | 59 | // boilerplate code: 60 | #include 61 | 62 | // 63 | // Cygwin lies about XSI conformance, there is no nl_types.h: 64 | // 65 | #ifdef BOOST_HAS_NL_TYPES_H 66 | # undef BOOST_HAS_NL_TYPES_H 67 | #endif 68 | 69 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/platform/haiku.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Jessica Hamilton 2014. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // Haiku specific config options: 9 | 10 | #define BOOST_PLATFORM "Haiku" 11 | 12 | #define BOOST_HAS_UNISTD_H 13 | #define BOOST_HAS_STDINT_H 14 | 15 | #ifndef BOOST_DISABLE_THREADS 16 | # define BOOST_HAS_THREADS 17 | #endif 18 | 19 | #define BOOST_NO_CXX11_HDR_TYPE_TRAITS 20 | #define BOOST_NO_CXX11_ATOMIC_SMART_PTR 21 | #define BOOST_NO_CXX11_STATIC_ASSERT 22 | #define BOOST_NO_CXX11_VARIADIC_MACROS 23 | 24 | // 25 | // thread API's not auto detected: 26 | // 27 | #define BOOST_HAS_SCHED_YIELD 28 | #define BOOST_HAS_GETTIMEOFDAY 29 | 30 | // boilerplate code: 31 | #include 32 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/platform/irix.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2003. 2 | // (C) Copyright Jens Maurer 2003. 3 | // Use, modification and distribution are subject to the 4 | // Boost Software License, Version 1.0. (See accompanying file 5 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | 7 | 8 | // See http://www.boost.org for most recent version. 9 | 10 | // SGI Irix specific config options: 11 | 12 | #define BOOST_PLATFORM "SGI Irix" 13 | 14 | #define BOOST_NO_SWPRINTF 15 | // 16 | // these are not auto detected by POSIX feature tests: 17 | // 18 | #define BOOST_HAS_GETTIMEOFDAY 19 | #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 20 | 21 | #ifdef __GNUC__ 22 | // GNU C on IRIX does not support threads (checked up to gcc 3.3) 23 | # define BOOST_DISABLE_THREADS 24 | #endif 25 | 26 | // boilerplate code: 27 | #define BOOST_HAS_UNISTD_H 28 | #include 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/platform/qnxnto.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Jim Douglas 2005. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // QNX specific config options: 9 | 10 | #define BOOST_PLATFORM "QNX" 11 | 12 | #define BOOST_HAS_UNISTD_H 13 | #include 14 | 15 | // QNX claims XOpen version 5 compatibility, but doesn't have an nl_types.h 16 | // or log1p and expm1: 17 | #undef BOOST_HAS_NL_TYPES_H 18 | #undef BOOST_HAS_LOG1P 19 | #undef BOOST_HAS_EXPM1 20 | 21 | #define BOOST_HAS_PTHREADS 22 | #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 23 | 24 | #define BOOST_HAS_GETTIMEOFDAY 25 | #define BOOST_HAS_CLOCK_GETTIME 26 | #define BOOST_HAS_NANOSLEEP 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/platform/solaris.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2003. 2 | // (C) Copyright Jens Maurer 2003. 3 | // Use, modification and distribution are subject to the 4 | // Boost Software License, Version 1.0. (See accompanying file 5 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | 7 | // See http://www.boost.org for most recent version. 8 | 9 | // sun specific config options: 10 | 11 | #define BOOST_PLATFORM "Sun Solaris" 12 | 13 | #define BOOST_HAS_GETTIMEOFDAY 14 | 15 | // boilerplate code: 16 | #define BOOST_HAS_UNISTD_H 17 | #include 18 | 19 | // 20 | // pthreads don't actually work with gcc unless _PTHREADS is defined: 21 | // 22 | #if defined(__GNUC__) && defined(_POSIX_THREADS) && !defined(_PTHREADS) 23 | # undef BOOST_HAS_PTHREADS 24 | #endif 25 | 26 | #define BOOST_HAS_STDINT_H 27 | #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 28 | #define BOOST_HAS_LOG1P 29 | #define BOOST_HAS_EXPM1 30 | 31 | 32 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/platform/vms.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Artyom Beilis 2010. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef BOOST_CONFIG_PLATFORM_VMS_HPP 7 | #define BOOST_CONFIG_PLATFORM_VMS_HPP 8 | 9 | #define BOOST_PLATFORM "OpenVMS" 10 | 11 | #undef BOOST_HAS_STDINT_H 12 | #define BOOST_HAS_UNISTD_H 13 | #define BOOST_HAS_NL_TYPES_H 14 | #define BOOST_HAS_GETTIMEOFDAY 15 | #define BOOST_HAS_DIRENT_H 16 | #define BOOST_HAS_PTHREADS 17 | #define BOOST_HAS_NANOSLEEP 18 | #define BOOST_HAS_CLOCK_GETTIME 19 | #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 20 | #define BOOST_HAS_LOG1P 21 | #define BOOST_HAS_EXPM1 22 | #define BOOST_HAS_THREADS 23 | #undef BOOST_HAS_SCHED_YIELD 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/platform/zos.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Dynatrace 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. 4 | // See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt 6 | 7 | // See http://www.boost.org for most recent version. 8 | 9 | // Platform setup for IBM z/OS. 10 | 11 | #define BOOST_PLATFORM "IBM z/OS" 12 | 13 | #include // For __UU, __C99, __TR1, ... 14 | 15 | #if defined(__UU) 16 | # define BOOST_HAS_GETTIMEOFDAY 17 | #endif 18 | 19 | #if defined(_OPEN_THREADS) || defined(__SUSV3_THR) 20 | # define BOOST_HAS_PTHREADS 21 | # define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 22 | # define BOOST_HAS_THREADS 23 | #endif 24 | 25 | #if defined(__SUSV3) || defined(__SUSV3_THR) 26 | # define BOOST_HAS_SCHED_YIELD 27 | #endif 28 | 29 | #define BOOST_HAS_SIGACTION 30 | #define BOOST_HAS_UNISTD_H 31 | #define BOOST_HAS_DIRENT_H 32 | #define BOOST_HAS_NL_TYPES_H 33 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/pragma_message.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_CONFIG_PRAGMA_MESSAGE_HPP_INCLUDED 2 | #define BOOST_CONFIG_PRAGMA_MESSAGE_HPP_INCLUDED 3 | 4 | // Copyright 2017 Peter Dimov. 5 | // 6 | // Distributed under the Boost Software License, Version 1.0. 7 | // 8 | // See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt 10 | // 11 | // BOOST_PRAGMA_MESSAGE("message") 12 | // 13 | // Expands to the equivalent of #pragma message("message") 14 | // 15 | // Note that this header is C compatible. 16 | 17 | #include 18 | 19 | #if defined(BOOST_DISABLE_PRAGMA_MESSAGE) 20 | # define BOOST_PRAGMA_MESSAGE(x) 21 | #elif defined(__INTEL_COMPILER) 22 | # define BOOST_PRAGMA_MESSAGE(x) __pragma(message(__FILE__ "(" BOOST_STRINGIZE(__LINE__) "): note: " x)) 23 | #elif defined(__GNUC__) 24 | # define BOOST_PRAGMA_MESSAGE(x) _Pragma(BOOST_STRINGIZE(message(x))) 25 | #elif defined(_MSC_VER) 26 | # define BOOST_PRAGMA_MESSAGE(x) __pragma(message(__FILE__ "(" BOOST_STRINGIZE(__LINE__) "): note: " x)) 27 | #else 28 | # define BOOST_PRAGMA_MESSAGE(x) 29 | #endif 30 | 31 | #endif // BOOST_CONFIG_PRAGMA_MESSAGE_HPP_INCLUDED 32 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/stdlib/xlcpp_zos.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Dynatrace 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. 4 | // See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt 6 | 7 | // See http://www.boost.org for most recent version. 8 | 9 | // Standard library setup for IBM z/OS XL C/C++ compiler. 10 | 11 | // Oldest library version currently supported is 2.1 (V2R1) 12 | #if __TARGET_LIB__ < 0x42010000 13 | # error "Library version not supported or configured - please reconfigure" 14 | #endif 15 | 16 | #if __TARGET_LIB__ > 0x42010000 17 | # if defined(BOOST_ASSERT_CONFIG) 18 | # error "Unknown library version - please run the configure tests and report the results" 19 | # endif 20 | #endif 21 | 22 | #define BOOST_STDLIB "IBM z/OS XL C/C++ standard library" 23 | 24 | #define BOOST_HAS_MACRO_USE_FACET 25 | 26 | #define BOOST_NO_CXX11_HDR_TYPE_TRAITS 27 | #define BOOST_NO_CXX11_HDR_INITIALIZER_LIST 28 | 29 | #define BOOST_NO_CXX11_ADDRESSOF 30 | #define BOOST_NO_CXX11_SMART_PTR 31 | #define BOOST_NO_CXX11_ATOMIC_SMART_PTR 32 | #define BOOST_NO_CXX11_NUMERIC_LIMITS 33 | #define BOOST_NO_CXX11_ALLOCATOR 34 | #define BOOST_NO_CXX11_POINTER_TRAITS 35 | #define BOOST_NO_CXX11_HDR_FUNCTIONAL 36 | #define BOOST_NO_CXX11_HDR_UNORDERED_SET 37 | #define BOOST_NO_CXX11_HDR_UNORDERED_MAP 38 | #define BOOST_NO_CXX11_HDR_TYPEINDEX 39 | #define BOOST_NO_CXX11_HDR_TUPLE 40 | #define BOOST_NO_CXX11_HDR_THREAD 41 | #define BOOST_NO_CXX11_HDR_SYSTEM_ERROR 42 | #define BOOST_NO_CXX11_HDR_REGEX 43 | #define BOOST_NO_CXX11_HDR_RATIO 44 | #define BOOST_NO_CXX11_HDR_RANDOM 45 | #define BOOST_NO_CXX11_HDR_MUTEX 46 | #define BOOST_NO_CXX11_HDR_FUTURE 47 | #define BOOST_NO_CXX11_HDR_FORWARD_LIST 48 | #define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE 49 | #define BOOST_NO_CXX11_HDR_CODECVT 50 | #define BOOST_NO_CXX11_HDR_CHRONO 51 | #define BOOST_NO_CXX11_HDR_ATOMIC 52 | #define BOOST_NO_CXX11_HDR_ARRAY 53 | #define BOOST_NO_CXX11_HDR_EXCEPTION 54 | #define BOOST_NO_CXX11_STD_ALIGN 55 | 56 | #define BOOST_NO_CXX14_STD_EXCHANGE 57 | #define BOOST_NO_CXX14_HDR_SHARED_MUTEX 58 | 59 | #define BOOST_NO_CXX17_STD_INVOKE 60 | #define BOOST_NO_CXX17_STD_APPLY 61 | #define BOOST_NO_CXX17_ITERATOR_TRAITS 62 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/config/warning_disable.hpp: -------------------------------------------------------------------------------- 1 | // Copyright John Maddock 2008 2 | // Use, modification, and distribution is subject to the Boost Software 3 | // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt) 5 | // 6 | // This file exists to turn off some overly-pedantic warning emitted 7 | // by certain compilers. You should include this header only in: 8 | // 9 | // * A test case, before any other headers, or, 10 | // * A library source file before any other headers. 11 | // 12 | // IT SHOULD NOT BE INCLUDED BY ANY BOOST HEADER. 13 | // 14 | // YOU SHOULD NOT INCLUDE IT IF YOU CAN REASONABLY FIX THE WARNING. 15 | // 16 | // The only warnings disabled here are those that are: 17 | // 18 | // * Quite unreasonably pedantic. 19 | // * Generally only emitted by a single compiler. 20 | // * Can't easily be fixed: for example if the vendors own std lib 21 | // code emits these warnings! 22 | // 23 | // Note that THIS HEADER MUST NOT INCLUDE ANY OTHER HEADERS: 24 | // not even std library ones! Doing so may turn the warning 25 | // off too late to be of any use. For example the VC++ C4996 26 | // warning can be emitted from if that header is included 27 | // before or by this one :-( 28 | // 29 | 30 | #ifndef BOOST_CONFIG_WARNING_DISABLE_HPP 31 | #define BOOST_CONFIG_WARNING_DISABLE_HPP 32 | 33 | #if defined(_MSC_VER) && (_MSC_VER >= 1400) 34 | // Error 'function': was declared deprecated 35 | // http://msdn2.microsoft.com/en-us/library/ttcz0bys(VS.80).aspx 36 | // This error is emitted when you use some perfectly conforming 37 | // std lib functions in a perfectly correct way, and also by 38 | // some of Microsoft's own std lib code ! 39 | # pragma warning(disable:4996) 40 | #endif 41 | #if defined(__INTEL_COMPILER) || defined(__ICL) 42 | // As above: gives warning when a "deprecated" 43 | // std library function is encountered. 44 | # pragma warning(disable:1786) 45 | #endif 46 | 47 | #endif // BOOST_CONFIG_WARNING_DISABLE_HPP 48 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/core/no_exceptions_support.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_CORE_NO_EXCEPTIONS_SUPPORT_HPP 2 | #define BOOST_CORE_NO_EXCEPTIONS_SUPPORT_HPP 3 | 4 | #if defined(_MSC_VER) 5 | # pragma once 6 | #endif 7 | 8 | //---------------------------------------------------------------------- 9 | // (C) Copyright 2004 Pavel Vozenilek. 10 | // Use, modification and distribution is subject to the Boost Software 11 | // License, Version 1.0. (See accompanying file LICENSE_1_0.txt 12 | // or copy at http://www.boost.org/LICENSE_1_0.txt) 13 | // 14 | // 15 | // This file contains helper macros used when exception support may be 16 | // disabled (as indicated by macro BOOST_NO_EXCEPTIONS). 17 | // 18 | // Before picking up these macros you may consider using RAII techniques 19 | // to deal with exceptions - their syntax can be always the same with 20 | // or without exception support enabled. 21 | //---------------------------------------------------------------------- 22 | 23 | #include 24 | #include 25 | 26 | #if !(defined BOOST_NO_EXCEPTIONS) 27 | # define BOOST_TRY { try 28 | # define BOOST_CATCH(x) catch(x) 29 | # define BOOST_RETHROW throw; 30 | # define BOOST_CATCH_END } 31 | #else 32 | # if BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x564)) 33 | # define BOOST_TRY { if ("") 34 | # define BOOST_CATCH(x) else if (!"") 35 | # elif !defined(BOOST_MSVC) || BOOST_MSVC >= 1900 36 | # define BOOST_TRY { if (true) 37 | # define BOOST_CATCH(x) else if (false) 38 | # else 39 | // warning C4127: conditional expression is constant 40 | # define BOOST_TRY { \ 41 | __pragma(warning(push)) \ 42 | __pragma(warning(disable: 4127)) \ 43 | if (true) \ 44 | __pragma(warning(pop)) 45 | # define BOOST_CATCH(x) else \ 46 | __pragma(warning(push)) \ 47 | __pragma(warning(disable: 4127)) \ 48 | if (false) \ 49 | __pragma(warning(pop)) 50 | # endif 51 | # define BOOST_RETHROW 52 | # define BOOST_CATCH_END } 53 | #endif 54 | 55 | 56 | #endif 57 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/current_function.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_CURRENT_FUNCTION_HPP_INCLUDED 2 | #define BOOST_CURRENT_FUNCTION_HPP_INCLUDED 3 | 4 | // MS compatible compilers support #pragma once 5 | 6 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) 7 | # pragma once 8 | #endif 9 | 10 | // 11 | // boost/current_function.hpp - BOOST_CURRENT_FUNCTION 12 | // 13 | // Copyright 2002-2018 Peter Dimov 14 | // 15 | // Distributed under the Boost Software License, Version 1.0. 16 | // See accompanying file LICENSE_1_0.txt or copy at 17 | // http://www.boost.org/LICENSE_1_0.txt 18 | // 19 | // http://www.boost.org/libs/assert 20 | // 21 | 22 | namespace boost 23 | { 24 | 25 | namespace detail 26 | { 27 | 28 | inline void current_function_helper() 29 | { 30 | 31 | #if defined( BOOST_DISABLE_CURRENT_FUNCTION ) 32 | 33 | # define BOOST_CURRENT_FUNCTION "(unknown)" 34 | 35 | #elif defined(__GNUC__) || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) || (defined(__ICC) && (__ICC >= 600)) || defined(__ghs__) || defined(__clang__) 36 | 37 | # define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__ 38 | 39 | #elif defined(__DMC__) && (__DMC__ >= 0x810) 40 | 41 | # define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__ 42 | 43 | #elif defined(__FUNCSIG__) 44 | 45 | # define BOOST_CURRENT_FUNCTION __FUNCSIG__ 46 | 47 | #elif (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 600)) || (defined(__IBMCPP__) && (__IBMCPP__ >= 500)) 48 | 49 | # define BOOST_CURRENT_FUNCTION __FUNCTION__ 50 | 51 | #elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x550) 52 | 53 | # define BOOST_CURRENT_FUNCTION __FUNC__ 54 | 55 | #elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901) 56 | 57 | # define BOOST_CURRENT_FUNCTION __func__ 58 | 59 | #elif defined(__cplusplus) && (__cplusplus >= 201103) 60 | 61 | # define BOOST_CURRENT_FUNCTION __func__ 62 | 63 | #else 64 | 65 | # define BOOST_CURRENT_FUNCTION "(unknown)" 66 | 67 | #endif 68 | 69 | } 70 | 71 | } // namespace detail 72 | 73 | } // namespace boost 74 | 75 | #endif // #ifndef BOOST_CURRENT_FUNCTION_HPP_INCLUDED 76 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/detail/workaround.hpp: -------------------------------------------------------------------------------- 1 | // Copyright David Abrahams 2002. 2 | // Distributed under the Boost Software License, Version 1.0. (See 3 | // accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt) 5 | #ifndef WORKAROUND_DWA2002126_HPP 6 | #define WORKAROUND_DWA2002126_HPP 7 | 8 | #include 9 | 10 | #endif // WORKAROUND_DWA2002126_HPP 11 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/move/detail/config_begin.hpp: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright Ion Gaztanaga 2012-2012. Distributed under the Boost 4 | // Software License, Version 1.0. (See accompanying file 5 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | // 7 | // See http://www.boost.org/libs/move for documentation. 8 | // 9 | ////////////////////////////////////////////////////////////////////////////// 10 | #ifndef BOOST_CONFIG_HPP 11 | #include 12 | #endif 13 | 14 | #ifdef BOOST_MSVC 15 | # pragma warning (push) 16 | # pragma warning (disable : 4324) // structure was padded due to __declspec(align()) 17 | # pragma warning (disable : 4675) // "function": resolved overload was found by argument-dependent lookup 18 | # pragma warning (disable : 4996) // "function": was declared deprecated (_CRT_SECURE_NO_DEPRECATE/_SCL_SECURE_NO_WARNINGS) 19 | # pragma warning (disable : 4714) // "function": marked as __forceinline not inlined 20 | # pragma warning (disable : 4127) // conditional expression is constant 21 | #endif 22 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/move/detail/config_end.hpp: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright Ion Gaztanaga 2012-2012. Distributed under the Boost 4 | // Software License, Version 1.0. (See accompanying file 5 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | // 7 | // See http://www.boost.org/libs/move for documentation. 8 | // 9 | ////////////////////////////////////////////////////////////////////////////// 10 | #if defined BOOST_MSVC 11 | # pragma warning (pop) 12 | #endif 13 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/move/detail/iterator_to_raw_pointer.hpp: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright Ion Gaztanaga 2014-2015. Distributed under the Boost 4 | // Software License, Version 1.0. (See accompanying file 5 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | // 7 | // See http://www.boost.org/libs/container for documentation. 8 | // 9 | ////////////////////////////////////////////////////////////////////////////// 10 | #ifndef BOOST_MOVE_DETAIL_ITERATOR_TO_RAW_POINTER_HPP 11 | #define BOOST_MOVE_DETAIL_ITERATOR_TO_RAW_POINTER_HPP 12 | 13 | #ifndef BOOST_CONFIG_HPP 14 | # include 15 | #endif 16 | 17 | #if defined(BOOST_HAS_PRAGMA_ONCE) 18 | # pragma once 19 | #endif 20 | 21 | #include 22 | #include 23 | #include 24 | 25 | namespace boost { 26 | namespace movelib { 27 | namespace detail { 28 | 29 | template 30 | BOOST_MOVE_FORCEINLINE T* iterator_to_pointer(T* i) 31 | { return i; } 32 | 33 | template 34 | BOOST_MOVE_FORCEINLINE typename boost::movelib::iterator_traits::pointer 35 | iterator_to_pointer(const Iterator &i) 36 | { return i.operator->(); } 37 | 38 | template 39 | struct iterator_to_element_ptr 40 | { 41 | typedef typename boost::movelib::iterator_traits::pointer pointer; 42 | typedef typename boost::movelib::pointer_element::type element_type; 43 | typedef element_type* type; 44 | }; 45 | 46 | } //namespace detail { 47 | 48 | template 49 | BOOST_MOVE_FORCEINLINE typename boost::movelib::detail::iterator_to_element_ptr::type 50 | iterator_to_raw_pointer(const Iterator &i) 51 | { 52 | return ::boost::movelib::to_raw_pointer 53 | ( ::boost::movelib::detail::iterator_to_pointer(i) ); 54 | } 55 | 56 | } //namespace movelib { 57 | } //namespace boost { 58 | 59 | #endif //#ifndef BOOST_MOVE_DETAIL_ITERATOR_TO_RAW_POINTER_HPP 60 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/move/detail/std_ns_begin.hpp: -------------------------------------------------------------------------------- 1 | #////////////////////////////////////////////////////////////////////////////// 2 | #// 3 | #// (C) Copyright Ion Gaztanaga 2015-2015. 4 | #// Distributed under the Boost Software License, Version 1.0. 5 | #// (See accompanying file LICENSE_1_0.txt or copy at 6 | #// http://www.boost.org/LICENSE_1_0.txt) 7 | #// 8 | #// See http://www.boost.org/libs/move for documentation. 9 | #// 10 | #////////////////////////////////////////////////////////////////////////////// 11 | # 12 | #if defined(_LIBCPP_VERSION) 13 | #if defined(__clang__) 14 | #define BOOST_MOVE_STD_NS_GCC_DIAGNOSTIC_PUSH 15 | #pragma GCC diagnostic push 16 | #pragma GCC diagnostic ignored "-Wc++11-extensions" 17 | #endif 18 | #define BOOST_MOVE_STD_NS_BEG _LIBCPP_BEGIN_NAMESPACE_STD 19 | #define BOOST_MOVE_STD_NS_END _LIBCPP_END_NAMESPACE_STD 20 | #elif defined(BOOST_GNU_STDLIB) && defined(_GLIBCXX_BEGIN_NAMESPACE_VERSION) //GCC >= 4.6 21 | #define BOOST_MOVE_STD_NS_BEG namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION 22 | #define BOOST_MOVE_STD_NS_END _GLIBCXX_END_NAMESPACE_VERSION } // namespace 23 | #elif defined(BOOST_GNU_STDLIB) && defined(_GLIBCXX_BEGIN_NAMESPACE) //GCC >= 4.2 24 | #define BOOST_MOVE_STD_NS_BEG _GLIBCXX_BEGIN_NAMESPACE(std) 25 | #define BOOST_MOVE_STD_NS_END _GLIBCXX_END_NAMESPACE 26 | #else 27 | #define BOOST_MOVE_STD_NS_BEG namespace std{ 28 | #define BOOST_MOVE_STD_NS_END } 29 | #endif 30 | 31 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/move/detail/std_ns_end.hpp: -------------------------------------------------------------------------------- 1 | #////////////////////////////////////////////////////////////////////////////// 2 | #// 3 | #// (C) Copyright Ion Gaztanaga 2015-2015. 4 | #// Distributed under the Boost Software License, Version 1.0. 5 | #// (See accompanying file LICENSE_1_0.txt or copy at 6 | #// http://www.boost.org/LICENSE_1_0.txt) 7 | #// 8 | #// See http://www.boost.org/libs/move for documentation. 9 | #// 10 | #////////////////////////////////////////////////////////////////////////////// 11 | #ifdef BOOST_MOVE_STD_NS_GCC_DIAGNOSTIC_PUSH 12 | #pragma GCC diagnostic pop 13 | #undef BOOST_MOVE_STD_NS_GCC_DIAGNOSTIC_PUSH 14 | #endif //BOOST_MOVE_STD_NS_GCC_DIAGNOSTIC_PUSH 15 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/move/detail/to_raw_pointer.hpp: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright Ion Gaztanaga 2017-2017 4 | // 5 | // Distributed under the Boost Software License, Version 1.0. 6 | // (See accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt) 8 | // 9 | // See http://www.boost.org/libs/move for documentation. 10 | // 11 | ///////////////////////////////////////////////////////////////////////////// 12 | 13 | #ifndef BOOST_MOVE_DETAIL_TO_RAW_POINTER_HPP 14 | #define BOOST_MOVE_DETAIL_TO_RAW_POINTER_HPP 15 | 16 | #ifndef BOOST_CONFIG_HPP 17 | # include 18 | #endif 19 | 20 | #if defined(BOOST_HAS_PRAGMA_ONCE) 21 | # pragma once 22 | #endif 23 | 24 | #include 25 | #include 26 | #include 27 | 28 | namespace boost { 29 | namespace movelib { 30 | 31 | template 32 | BOOST_MOVE_FORCEINLINE T* to_raw_pointer(T* p) 33 | { return p; } 34 | 35 | template 36 | BOOST_MOVE_FORCEINLINE typename boost::movelib::pointer_element::type* 37 | to_raw_pointer(const Pointer &p) 38 | { return ::boost::movelib::to_raw_pointer(p.operator->()); } 39 | 40 | } //namespace movelib 41 | } //namespace boost 42 | 43 | #include 44 | 45 | #endif //BOOST_MOVE_DETAIL_TO_RAW_POINTER_HPP 46 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/move/move.hpp: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright David Abrahams, Vicente Botet 2009. 4 | // (C) Copyright Ion Gaztanaga 2009-2012. 5 | // Distributed under the Boost Software License, Version 1.0. 6 | // (See accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt) 8 | // 9 | // See http://www.boost.org/libs/move for documentation. 10 | // 11 | ////////////////////////////////////////////////////////////////////////////// 12 | 13 | //! \file 14 | //! A general library header that includes 15 | //! the rest of top-level headers. 16 | 17 | #ifndef BOOST_MOVE_MOVE_HPP 18 | #define BOOST_MOVE_MOVE_HPP 19 | 20 | #ifndef BOOST_CONFIG_HPP 21 | # include 22 | #endif 23 | # 24 | #if defined(BOOST_HAS_PRAGMA_ONCE) 25 | # pragma once 26 | #endif 27 | 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | #include 34 | 35 | #endif //#ifndef BOOST_MOVE_MOVE_HPP 36 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/preprocessor/cat.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_CAT_HPP 15 | # define BOOST_PREPROCESSOR_CAT_HPP 16 | # 17 | # include 18 | # 19 | # /* BOOST_PP_CAT */ 20 | # 21 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() 22 | # define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b) 23 | # else 24 | # define BOOST_PP_CAT(a, b) BOOST_PP_CAT_OO((a, b)) 25 | # define BOOST_PP_CAT_OO(par) BOOST_PP_CAT_I ## par 26 | # endif 27 | # 28 | # if (~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()) || (defined(__INTEL_COMPILER) && __INTEL_COMPILER >= 1700) 29 | # define BOOST_PP_CAT_I(a, b) a ## b 30 | # else 31 | # define BOOST_PP_CAT_I(a, b) BOOST_PP_CAT_II(~, a ## b) 32 | # define BOOST_PP_CAT_II(p, res) res 33 | # endif 34 | # 35 | # endif 36 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/preprocessor/comma_if.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_COMMA_IF_HPP 13 | # define BOOST_PREPROCESSOR_COMMA_IF_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/preprocessor/control/expr_iif.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_CONTROL_EXPR_IIF_HPP 13 | # define BOOST_PREPROCESSOR_CONTROL_EXPR_IIF_HPP 14 | # 15 | # include 16 | # 17 | # /* BOOST_PP_EXPR_IIF */ 18 | # 19 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() 20 | # define BOOST_PP_EXPR_IIF(bit, expr) BOOST_PP_EXPR_IIF_I(bit, expr) 21 | # else 22 | # define BOOST_PP_EXPR_IIF(bit, expr) BOOST_PP_EXPR_IIF_OO((bit, expr)) 23 | # define BOOST_PP_EXPR_IIF_OO(par) BOOST_PP_EXPR_IIF_I ## par 24 | # endif 25 | # 26 | # define BOOST_PP_EXPR_IIF_I(bit, expr) BOOST_PP_EXPR_IIF_ ## bit(expr) 27 | # 28 | # define BOOST_PP_EXPR_IIF_0(expr) 29 | # define BOOST_PP_EXPR_IIF_1(expr) expr 30 | # 31 | # endif 32 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/preprocessor/control/if.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_CONTROL_IF_HPP 15 | # define BOOST_PREPROCESSOR_CONTROL_IF_HPP 16 | # 17 | # include 18 | # include 19 | # include 20 | # 21 | # /* BOOST_PP_IF */ 22 | # 23 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 24 | # define BOOST_PP_IF(cond, t, f) BOOST_PP_IIF(BOOST_PP_BOOL(cond), t, f) 25 | # else 26 | # define BOOST_PP_IF(cond, t, f) BOOST_PP_IF_I(cond, t, f) 27 | # define BOOST_PP_IF_I(cond, t, f) BOOST_PP_IIF(BOOST_PP_BOOL(cond), t, f) 28 | # endif 29 | # 30 | # endif 31 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/preprocessor/control/iif.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_CONTROL_IIF_HPP 13 | # define BOOST_PREPROCESSOR_CONTROL_IIF_HPP 14 | # 15 | # include 16 | # 17 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() 18 | # define BOOST_PP_IIF(bit, t, f) BOOST_PP_IIF_I(bit, t, f) 19 | # else 20 | # define BOOST_PP_IIF(bit, t, f) BOOST_PP_IIF_OO((bit, t, f)) 21 | # define BOOST_PP_IIF_OO(par) BOOST_PP_IIF_I ## par 22 | # endif 23 | # 24 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() 25 | # define BOOST_PP_IIF_I(bit, t, f) BOOST_PP_IIF_ ## bit(t, f) 26 | # else 27 | # define BOOST_PP_IIF_I(bit, t, f) BOOST_PP_IIF_II(BOOST_PP_IIF_ ## bit(t, f)) 28 | # define BOOST_PP_IIF_II(id) id 29 | # endif 30 | # 31 | # define BOOST_PP_IIF_0(t, f) f 32 | # define BOOST_PP_IIF_1(t, f) t 33 | # 34 | # endif 35 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/preprocessor/debug/error.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_DEBUG_ERROR_HPP 13 | # define BOOST_PREPROCESSOR_DEBUG_ERROR_HPP 14 | # 15 | # include 16 | # include 17 | # 18 | # /* BOOST_PP_ERROR */ 19 | # 20 | # if BOOST_PP_CONFIG_ERRORS 21 | # define BOOST_PP_ERROR(code) BOOST_PP_CAT(BOOST_PP_ERROR_, code) 22 | # endif 23 | # 24 | # define BOOST_PP_ERROR_0x0000 BOOST_PP_ERROR(0x0000, BOOST_PP_INDEX_OUT_OF_BOUNDS) 25 | # define BOOST_PP_ERROR_0x0001 BOOST_PP_ERROR(0x0001, BOOST_PP_WHILE_OVERFLOW) 26 | # define BOOST_PP_ERROR_0x0002 BOOST_PP_ERROR(0x0002, BOOST_PP_FOR_OVERFLOW) 27 | # define BOOST_PP_ERROR_0x0003 BOOST_PP_ERROR(0x0003, BOOST_PP_REPEAT_OVERFLOW) 28 | # define BOOST_PP_ERROR_0x0004 BOOST_PP_ERROR(0x0004, BOOST_PP_LIST_FOLD_OVERFLOW) 29 | # define BOOST_PP_ERROR_0x0005 BOOST_PP_ERROR(0x0005, BOOST_PP_SEQ_FOLD_OVERFLOW) 30 | # define BOOST_PP_ERROR_0x0006 BOOST_PP_ERROR(0x0006, BOOST_PP_ARITHMETIC_OVERFLOW) 31 | # define BOOST_PP_ERROR_0x0007 BOOST_PP_ERROR(0x0007, BOOST_PP_DIVISION_BY_ZERO) 32 | # 33 | # endif 34 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/preprocessor/facilities/check_empty.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Edward Diener 2019. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_FACILITIES_CHECK_EMPTY_HPP 13 | # define BOOST_PREPROCESSOR_FACILITIES_CHECK_EMPTY_HPP 14 | # include 15 | # if BOOST_PP_VARIADIC_HAS_OPT() 16 | # include 17 | # define BOOST_PP_CHECK_EMPTY(...) BOOST_PP_IS_EMPTY_OPT(__VA_ARGS__) 18 | # endif /* BOOST_PP_VARIADIC_HAS_OPT() */ 19 | # endif /* BOOST_PREPROCESSOR_FACILITIES_CHECK_EMPTY_HPP */ 20 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/preprocessor/facilities/detail/is_empty.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Edward Diener 2014. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | #ifndef BOOST_PREPROCESSOR_DETAIL_IS_EMPTY_HPP 13 | #define BOOST_PREPROCESSOR_DETAIL_IS_EMPTY_HPP 14 | 15 | #include 16 | 17 | #if BOOST_PP_VARIADICS_MSVC 18 | 19 | # pragma warning(once:4002) 20 | 21 | #define BOOST_PP_DETAIL_IS_EMPTY_IIF_0(t, b) b 22 | #define BOOST_PP_DETAIL_IS_EMPTY_IIF_1(t, b) t 23 | 24 | #else 25 | 26 | #define BOOST_PP_DETAIL_IS_EMPTY_IIF_0(t, ...) __VA_ARGS__ 27 | #define BOOST_PP_DETAIL_IS_EMPTY_IIF_1(t, ...) t 28 | 29 | #endif 30 | 31 | #if BOOST_PP_VARIADICS_MSVC && _MSC_VER <= 1400 32 | 33 | #define BOOST_PP_DETAIL_IS_EMPTY_PROCESS(param) \ 34 | BOOST_PP_IS_BEGIN_PARENS \ 35 | ( \ 36 | BOOST_PP_DETAIL_IS_EMPTY_NON_FUNCTION_C param () \ 37 | ) \ 38 | /**/ 39 | 40 | #else 41 | 42 | #define BOOST_PP_DETAIL_IS_EMPTY_PROCESS(...) \ 43 | BOOST_PP_IS_BEGIN_PARENS \ 44 | ( \ 45 | BOOST_PP_DETAIL_IS_EMPTY_NON_FUNCTION_C __VA_ARGS__ () \ 46 | ) \ 47 | /**/ 48 | 49 | #endif 50 | 51 | #define BOOST_PP_DETAIL_IS_EMPTY_PRIMITIVE_CAT(a, b) a ## b 52 | #define BOOST_PP_DETAIL_IS_EMPTY_IIF(bit) BOOST_PP_DETAIL_IS_EMPTY_PRIMITIVE_CAT(BOOST_PP_DETAIL_IS_EMPTY_IIF_,bit) 53 | #define BOOST_PP_DETAIL_IS_EMPTY_NON_FUNCTION_C(...) () 54 | 55 | #endif /* BOOST_PREPROCESSOR_DETAIL_IS_EMPTY_HPP */ 56 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/preprocessor/facilities/empty.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_FACILITIES_EMPTY_HPP 15 | # define BOOST_PREPROCESSOR_FACILITIES_EMPTY_HPP 16 | # 17 | # include 18 | # 19 | # /* BOOST_PP_EMPTY */ 20 | # 21 | # define BOOST_PP_EMPTY() 22 | # 23 | # endif 24 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/preprocessor/facilities/expand.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_FACILITIES_EXPAND_HPP 15 | # define BOOST_PREPROCESSOR_FACILITIES_EXPAND_HPP 16 | # 17 | # include 18 | # 19 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() && ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC() 20 | # define BOOST_PP_EXPAND(x) BOOST_PP_EXPAND_I(x) 21 | # else 22 | # define BOOST_PP_EXPAND(x) BOOST_PP_EXPAND_OO((x)) 23 | # define BOOST_PP_EXPAND_OO(par) BOOST_PP_EXPAND_I ## par 24 | # endif 25 | # 26 | # define BOOST_PP_EXPAND_I(x) x 27 | # 28 | # endif 29 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/preprocessor/facilities/is_1.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2003. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_FACILITIES_IS_1_HPP 13 | # define BOOST_PREPROCESSOR_FACILITIES_IS_1_HPP 14 | # 15 | # include 16 | # include 17 | # 18 | # /* BOOST_PP_IS_1 */ 19 | # 20 | # define BOOST_PP_IS_1(x) BOOST_PP_IS_EMPTY(BOOST_PP_CAT(BOOST_PP_IS_1_HELPER_, x)) 21 | # define BOOST_PP_IS_1_HELPER_1 22 | # 23 | # endif 24 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/preprocessor/facilities/is_empty.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2003. 4 | # * (C) Copyright Edward Diener 2014. 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # * * 9 | # ************************************************************************** */ 10 | # 11 | # /* See http://www.boost.org for most recent version. */ 12 | # 13 | # ifndef BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_HPP 14 | # define BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_HPP 15 | # 16 | # include 17 | # include 18 | # 19 | # endif /* BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_HPP */ 20 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/preprocessor/facilities/overload.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2011. * 4 | # * (C) Copyright Edward Diener 2011. * 5 | # * Distributed under the Boost Software License, Version 1.0. (See * 6 | # * accompanying file LICENSE_1_0.txt or copy at * 7 | # * http://www.boost.org/LICENSE_1_0.txt) * 8 | # * * 9 | # ************************************************************************** */ 10 | # 11 | # /* See http://www.boost.org for most recent version. */ 12 | # 13 | # ifndef BOOST_PREPROCESSOR_FACILITIES_OVERLOAD_HPP 14 | # define BOOST_PREPROCESSOR_FACILITIES_OVERLOAD_HPP 15 | # 16 | # include 17 | # include 18 | # 19 | # /* BOOST_PP_OVERLOAD */ 20 | # 21 | # define BOOST_PP_OVERLOAD(prefix, ...) BOOST_PP_CAT(prefix, BOOST_PP_VARIADIC_SIZE(__VA_ARGS__)) 22 | # 23 | # endif 24 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/preprocessor/logical/compl.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_LOGICAL_COMPL_HPP 13 | # define BOOST_PREPROCESSOR_LOGICAL_COMPL_HPP 14 | # 15 | # include 16 | # 17 | # /* BOOST_PP_COMPL */ 18 | # 19 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() 20 | # define BOOST_PP_COMPL(x) BOOST_PP_COMPL_I(x) 21 | # else 22 | # define BOOST_PP_COMPL(x) BOOST_PP_COMPL_OO((x)) 23 | # define BOOST_PP_COMPL_OO(par) BOOST_PP_COMPL_I ## par 24 | # endif 25 | # 26 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() 27 | # define BOOST_PP_COMPL_I(x) BOOST_PP_COMPL_ ## x 28 | # else 29 | # define BOOST_PP_COMPL_I(x) BOOST_PP_COMPL_ID(BOOST_PP_COMPL_ ## x) 30 | # define BOOST_PP_COMPL_ID(id) id 31 | # endif 32 | # 33 | # define BOOST_PP_COMPL_0 1 34 | # define BOOST_PP_COMPL_1 0 35 | # 36 | # endif 37 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/preprocessor/punctuation/comma.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_PUNCTUATION_COMMA_HPP 15 | # define BOOST_PREPROCESSOR_PUNCTUATION_COMMA_HPP 16 | # 17 | # /* BOOST_PP_COMMA */ 18 | # 19 | # define BOOST_PP_COMMA() , 20 | # 21 | # endif 22 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/preprocessor/punctuation/comma_if.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_PUNCTUATION_COMMA_IF_HPP 15 | # define BOOST_PREPROCESSOR_PUNCTUATION_COMMA_IF_HPP 16 | # 17 | # include 18 | # include 19 | # include 20 | # include 21 | # 22 | # /* BOOST_PP_COMMA_IF */ 23 | # 24 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 25 | # define BOOST_PP_COMMA_IF(cond) BOOST_PP_IF(cond, BOOST_PP_COMMA, BOOST_PP_EMPTY)() 26 | # else 27 | # define BOOST_PP_COMMA_IF(cond) BOOST_PP_COMMA_IF_I(cond) 28 | # define BOOST_PP_COMMA_IF_I(cond) BOOST_PP_IF(cond, BOOST_PP_COMMA, BOOST_PP_EMPTY)() 29 | # endif 30 | # 31 | # endif 32 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/preprocessor/punctuation/detail/is_begin_parens.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Edward Diener 2014. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | #ifndef BOOST_PREPROCESSOR_DETAIL_IS_BEGIN_PARENS_HPP 13 | #define BOOST_PREPROCESSOR_DETAIL_IS_BEGIN_PARENS_HPP 14 | 15 | #if BOOST_PP_VARIADICS_MSVC 16 | 17 | #include 18 | 19 | #define BOOST_PP_DETAIL_VD_IBP_CAT(a, b) BOOST_PP_DETAIL_VD_IBP_CAT_I(a, b) 20 | #define BOOST_PP_DETAIL_VD_IBP_CAT_I(a, b) BOOST_PP_DETAIL_VD_IBP_CAT_II(a ## b) 21 | #define BOOST_PP_DETAIL_VD_IBP_CAT_II(res) res 22 | 23 | #define BOOST_PP_DETAIL_IBP_SPLIT(i, ...) \ 24 | BOOST_PP_DETAIL_VD_IBP_CAT(BOOST_PP_DETAIL_IBP_PRIMITIVE_CAT(BOOST_PP_DETAIL_IBP_SPLIT_,i)(__VA_ARGS__),BOOST_PP_EMPTY()) \ 25 | /**/ 26 | 27 | #define BOOST_PP_DETAIL_IBP_IS_VARIADIC_C(...) 1 1 28 | 29 | #else 30 | 31 | #define BOOST_PP_DETAIL_IBP_SPLIT(i, ...) \ 32 | BOOST_PP_DETAIL_IBP_PRIMITIVE_CAT(BOOST_PP_DETAIL_IBP_SPLIT_,i)(__VA_ARGS__) \ 33 | /**/ 34 | 35 | #define BOOST_PP_DETAIL_IBP_IS_VARIADIC_C(...) 1 36 | 37 | #endif /* BOOST_PP_VARIADICS_MSVC */ 38 | 39 | #define BOOST_PP_DETAIL_IBP_SPLIT_0(a, ...) a 40 | #define BOOST_PP_DETAIL_IBP_SPLIT_1(a, ...) __VA_ARGS__ 41 | 42 | #define BOOST_PP_DETAIL_IBP_CAT(a, ...) BOOST_PP_DETAIL_IBP_PRIMITIVE_CAT(a,__VA_ARGS__) 43 | #define BOOST_PP_DETAIL_IBP_PRIMITIVE_CAT(a, ...) a ## __VA_ARGS__ 44 | 45 | #define BOOST_PP_DETAIL_IBP_IS_VARIADIC_R_1 1, 46 | #define BOOST_PP_DETAIL_IBP_IS_VARIADIC_R_BOOST_PP_DETAIL_IBP_IS_VARIADIC_C 0, 47 | 48 | #endif /* BOOST_PREPROCESSOR_DETAIL_IS_BEGIN_PARENS_HPP */ 49 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/preprocessor/punctuation/is_begin_parens.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Edward Diener 2014. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_IS_BEGIN_PARENS_HPP 13 | # define BOOST_PREPROCESSOR_IS_BEGIN_PARENS_HPP 14 | 15 | #include 16 | #include 17 | 18 | #if BOOST_PP_VARIADICS_MSVC && _MSC_VER <= 1400 19 | 20 | #define BOOST_PP_IS_BEGIN_PARENS(param) \ 21 | BOOST_PP_DETAIL_IBP_SPLIT \ 22 | ( \ 23 | 0, \ 24 | BOOST_PP_DETAIL_IBP_CAT \ 25 | ( \ 26 | BOOST_PP_DETAIL_IBP_IS_VARIADIC_R_, \ 27 | BOOST_PP_DETAIL_IBP_IS_VARIADIC_C param \ 28 | ) \ 29 | ) \ 30 | /**/ 31 | 32 | #else 33 | 34 | #define BOOST_PP_IS_BEGIN_PARENS(...) \ 35 | BOOST_PP_DETAIL_IBP_SPLIT \ 36 | ( \ 37 | 0, \ 38 | BOOST_PP_DETAIL_IBP_CAT \ 39 | ( \ 40 | BOOST_PP_DETAIL_IBP_IS_VARIADIC_R_, \ 41 | BOOST_PP_DETAIL_IBP_IS_VARIADIC_C __VA_ARGS__ \ 42 | ) \ 43 | ) \ 44 | /**/ 45 | 46 | #endif /* BOOST_PP_VARIADICS_MSVC && _MSC_VER <= 1400 */ 47 | #endif /* BOOST_PREPROCESSOR_IS_BEGIN_PARENS_HPP */ 48 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/preprocessor/seq/detail/is_empty.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Edward Diener 2015. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_SEQ_DETAIL_IS_EMPTY_HPP 13 | # define BOOST_PREPROCESSOR_SEQ_DETAIL_IS_EMPTY_HPP 14 | # 15 | # include 16 | # include 17 | # include 18 | # include 19 | # include 20 | # 21 | /* An empty seq is one that is just BOOST_PP_SEQ_NIL */ 22 | # 23 | # define BOOST_PP_SEQ_DETAIL_IS_EMPTY(seq) \ 24 | BOOST_PP_COMPL \ 25 | ( \ 26 | BOOST_PP_SEQ_DETAIL_IS_NOT_EMPTY(seq) \ 27 | ) \ 28 | /**/ 29 | # 30 | # define BOOST_PP_SEQ_DETAIL_IS_EMPTY_SIZE(size) \ 31 | BOOST_PP_COMPL \ 32 | ( \ 33 | BOOST_PP_SEQ_DETAIL_IS_NOT_EMPTY_SIZE(size) \ 34 | ) \ 35 | /**/ 36 | # 37 | # define BOOST_PP_SEQ_DETAIL_IS_NOT_EMPTY(seq) \ 38 | BOOST_PP_SEQ_DETAIL_IS_NOT_EMPTY_SIZE(BOOST_PP_SEQ_DETAIL_EMPTY_SIZE(seq)) \ 39 | /**/ 40 | # 41 | # define BOOST_PP_SEQ_DETAIL_IS_NOT_EMPTY_SIZE(size) \ 42 | BOOST_PP_BOOL(size) \ 43 | /**/ 44 | # 45 | # define BOOST_PP_SEQ_DETAIL_EMPTY_SIZE(seq) \ 46 | BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq (nil))) \ 47 | /**/ 48 | # 49 | # endif 50 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/preprocessor/seq/seq.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_SEQ_SEQ_HPP 13 | # define BOOST_PREPROCESSOR_SEQ_SEQ_HPP 14 | # 15 | # include 16 | # include 17 | # 18 | # /* BOOST_PP_SEQ_HEAD */ 19 | # 20 | # define BOOST_PP_SEQ_HEAD(seq) BOOST_PP_SEQ_ELEM(0, seq) 21 | # 22 | # /* BOOST_PP_SEQ_TAIL */ 23 | # 24 | # if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() 25 | # define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_1((seq)) 26 | # define BOOST_PP_SEQ_TAIL_1(par) BOOST_PP_SEQ_TAIL_2 ## par 27 | # define BOOST_PP_SEQ_TAIL_2(seq) BOOST_PP_SEQ_TAIL_I ## seq 28 | # elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() 29 | # define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_ID(BOOST_PP_SEQ_TAIL_I seq) 30 | # define BOOST_PP_SEQ_TAIL_ID(id) id 31 | # elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 32 | # define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_D(seq) 33 | # define BOOST_PP_SEQ_TAIL_D(seq) BOOST_PP_SEQ_TAIL_I seq 34 | # else 35 | # define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_I seq 36 | # endif 37 | # 38 | # define BOOST_PP_SEQ_TAIL_I(x) 39 | # 40 | # /* BOOST_PP_SEQ_NIL */ 41 | # 42 | # define BOOST_PP_SEQ_NIL(x) (x) 43 | # 44 | # endif 45 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/preprocessor/tuple/detail/is_single_return.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Edward Diener 2014. * 4 | # * Distributed under the Boost Software License, Version 1.0. (See * 5 | # * accompanying file LICENSE_1_0.txt or copy at * 6 | # * http://www.boost.org/LICENSE_1_0.txt) * 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_TUPLE_DETAIL_IS_SINGLE_RETURN_HPP 13 | # define BOOST_PREPROCESSOR_TUPLE_DETAIL_IS_SINGLE_RETURN_HPP 14 | # 15 | # include 16 | # 17 | # /* BOOST_PP_TUPLE_IS_SINGLE_RETURN */ 18 | # 19 | # if BOOST_PP_VARIADICS_MSVC 20 | # include 21 | # include 22 | # include 23 | # define BOOST_PP_TUPLE_IS_SINGLE_RETURN(sr,nsr,tuple) \ 24 | BOOST_PP_IIF(BOOST_PP_IS_1(BOOST_PP_TUPLE_SIZE(tuple)),sr,nsr) \ 25 | /**/ 26 | # endif /* BOOST_PP_VARIADICS_MSVC */ 27 | # 28 | # endif /* BOOST_PREPROCESSOR_TUPLE_DETAIL_IS_SINGLE_RETURN_HPP */ 29 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/preprocessor/tuple/elem.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002-2011) */ 11 | # /* Revised by Edward Diener (2011,2014,2020) */ 12 | # 13 | # /* See http://www.boost.org for most recent version. */ 14 | # 15 | # ifndef BOOST_PREPROCESSOR_TUPLE_ELEM_HPP 16 | # define BOOST_PREPROCESSOR_TUPLE_ELEM_HPP 17 | # 18 | # include 19 | # include 20 | # include 21 | # include 22 | # include 23 | # include 24 | # include 25 | # 26 | # if BOOST_PP_VARIADICS_MSVC 27 | # define BOOST_PP_TUPLE_ELEM(...) BOOST_PP_TUPLE_ELEM_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_ELEM_O_, __VA_ARGS__), (__VA_ARGS__)) 28 | # define BOOST_PP_TUPLE_ELEM_I(m, args) BOOST_PP_TUPLE_ELEM_II(m, args) 29 | # define BOOST_PP_TUPLE_ELEM_II(m, args) BOOST_PP_CAT(m ## args,) 30 | /* 31 | Use BOOST_PP_REM_CAT if it is a single element tuple ( which might be empty ) 32 | else use BOOST_PP_REM. This fixes a VC++ problem with an empty tuple and BOOST_PP_TUPLE_ELEM 33 | functionality. See tuple_elem_bug_test.cxx. 34 | */ 35 | # define BOOST_PP_TUPLE_ELEM_O_2(n, tuple) \ 36 | BOOST_PP_VARIADIC_ELEM(n, BOOST_PP_EXPAND(BOOST_PP_TUPLE_IS_SINGLE_RETURN(BOOST_PP_REM_CAT,BOOST_PP_REM,tuple) tuple)) \ 37 | /**/ 38 | # else 39 | # define BOOST_PP_TUPLE_ELEM(...) BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_ELEM_O_, __VA_ARGS__)(__VA_ARGS__) 40 | # define BOOST_PP_TUPLE_ELEM_O_2(n, tuple) BOOST_PP_VARIADIC_ELEM(n, BOOST_PP_REM tuple) 41 | # endif 42 | # define BOOST_PP_TUPLE_ELEM_O_3(size, n, tuple) BOOST_PP_TUPLE_ELEM_O_2(n, tuple) 43 | # 44 | # /* directly used elsewhere in Boost... */ 45 | # 46 | # define BOOST_PP_TUPLE_ELEM_1_0(a) a 47 | # 48 | # define BOOST_PP_TUPLE_ELEM_2_0(a, b) a 49 | # define BOOST_PP_TUPLE_ELEM_2_1(a, b) b 50 | # 51 | # define BOOST_PP_TUPLE_ELEM_3_0(a, b, c) a 52 | # define BOOST_PP_TUPLE_ELEM_3_1(a, b, c) b 53 | # define BOOST_PP_TUPLE_ELEM_3_2(a, b, c) c 54 | # 55 | # endif 56 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/preprocessor/tuple/size.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Edward Diener 2011. * 4 | # * (C) Copyright Paul Mensonides 2011. * 5 | # * Distributed under the Boost Software License, Version 1.0. (See * 6 | # * accompanying file LICENSE_1_0.txt or copy at * 7 | # * http://www.boost.org/LICENSE_1_0.txt) * 8 | # * * 9 | # ************************************************************************** */ 10 | # 11 | # /* See http://www.boost.org for most recent version. */ 12 | # 13 | # ifndef BOOST_PREPROCESSOR_TUPLE_SIZE_HPP 14 | # define BOOST_PREPROCESSOR_TUPLE_SIZE_HPP 15 | # 16 | # include 17 | # include 18 | # include 19 | # include 20 | # include 21 | # 22 | # if BOOST_PP_VARIADIC_HAS_OPT() 23 | # if BOOST_PP_VARIADICS_MSVC 24 | # define BOOST_PP_TUPLE_SIZE(tuple) BOOST_PP_TUPLE_SIZE_CHECK(BOOST_PP_CAT(BOOST_PP_VARIADIC_SIZE tuple,)) 25 | # else 26 | # define BOOST_PP_TUPLE_SIZE(tuple) BOOST_PP_TUPLE_SIZE_CHECK(BOOST_PP_VARIADIC_SIZE tuple) 27 | # endif 28 | # define BOOST_PP_TUPLE_SIZE_CHECK(size) BOOST_PP_IF(size,size,1) 29 | # elif BOOST_PP_VARIADICS_MSVC 30 | # define BOOST_PP_TUPLE_SIZE(tuple) BOOST_PP_CAT(BOOST_PP_VARIADIC_SIZE tuple,) 31 | # else 32 | # define BOOST_PP_TUPLE_SIZE(tuple) BOOST_PP_VARIADIC_SIZE tuple 33 | # endif 34 | # 35 | # endif 36 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/preprocessor/variadic/detail/has_opt.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Edward Diener 2019. * 4 | # * Distributed under the Boost Software License, Version 1.0. (See * 5 | # * accompanying file LICENSE_1_0.txt or copy at * 6 | # * http://www.boost.org/LICENSE_1_0.txt) * 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_VARIADIC_DETAIL_HAS_OPT_HPP 13 | # define BOOST_PREPROCESSOR_VARIADIC_DETAIL_HAS_OPT_HPP 14 | # 15 | # include 16 | # 17 | # if defined(__cplusplus) && __cplusplus > 201703L 18 | # 19 | # if BOOST_PP_VARIADICS_MSVC 20 | # include 21 | # endif 22 | # 23 | # define BOOST_PP_VARIADIC_HAS_OPT_FUNCTION(...) \ 24 | __VA_OPT__(,) , 1, 0 \ 25 | /**/ 26 | # 27 | # if BOOST_PP_VARIADICS_MSVC 28 | # define BOOST_PP_VARIADIC_HAS_OPT_ELEM0(e0, ...) BOOST_PP_CAT(BOOST_PP_VARIADIC_HAS_OPT_ELEM_0(e0,__VA_ARGS__),) 29 | # define BOOST_PP_VARIADIC_HAS_OPT_ELEM2(e0, ...) BOOST_PP_CAT(BOOST_PP_VARIADIC_HAS_OPT_ELEM_2(e0,__VA_ARGS__),) 30 | # else 31 | # define BOOST_PP_VARIADIC_HAS_OPT_ELEM0(e0, ...) BOOST_PP_VARIADIC_HAS_OPT_ELEM_0(e0,__VA_ARGS__) 32 | # define BOOST_PP_VARIADIC_HAS_OPT_ELEM2(e0, ...) BOOST_PP_VARIADIC_HAS_OPT_ELEM_2(e0,__VA_ARGS__) 33 | # endif 34 | # define BOOST_PP_VARIADIC_HAS_OPT_ELEM_0(e0, ...) e0 35 | # define BOOST_PP_VARIADIC_HAS_OPT_ELEM_2(e0, e1, e2, ...) e2 36 | # 37 | # endif 38 | # 39 | # endif 40 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/preprocessor/variadic/has_opt.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Edward Diener 2019. * 4 | # * Distributed under the Boost Software License, Version 1.0. (See * 5 | # * accompanying file LICENSE_1_0.txt or copy at * 6 | # * http://www.boost.org/LICENSE_1_0.txt) * 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_VARIADIC_HAS_OPT_HPP 13 | # define BOOST_PREPROCESSOR_VARIADIC_HAS_OPT_HPP 14 | # 15 | # include 16 | # 17 | # /* BOOST_PP_VARIADIC_HAS_OPT */ 18 | # 19 | # if defined(__cplusplus) && __cplusplus > 201703L 20 | # include 21 | # define BOOST_PP_VARIADIC_HAS_OPT() \ 22 | BOOST_PP_VARIADIC_HAS_OPT_ELEM2(BOOST_PP_VARIADIC_HAS_OPT_FUNCTION(?),) \ 23 | /**/ 24 | # else 25 | # define BOOST_PP_VARIADIC_HAS_OPT() 0 26 | # endif 27 | # 28 | # endif 29 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/preprocessor/variadic/limits/size_64.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Edward Diener 2011. * 4 | # * (C) Copyright Paul Mensonides 2011. * 5 | # * Distributed under the Boost Software License, Version 1.0. (See * 6 | # * accompanying file LICENSE_1_0.txt or copy at * 7 | # * http://www.boost.org/LICENSE_1_0.txt) * 8 | # * * 9 | # ************************************************************************** */ 10 | # 11 | # /* See http://www.boost.org for most recent version. */ 12 | # 13 | # ifndef BOOST_PREPROCESSOR_VARIADIC_SIZE_64_HPP 14 | # define BOOST_PREPROCESSOR_VARIADIC_SIZE_64_HPP 15 | # 16 | # if BOOST_PP_VARIADICS_MSVC 17 | # define BOOST_PP_VARIADIC_DO_SIZE(...) BOOST_PP_CAT(BOOST_PP_VARIADIC_SIZE_I(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,),) 18 | # else 19 | # define BOOST_PP_VARIADIC_DO_SIZE(...) BOOST_PP_VARIADIC_SIZE_I(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,) 20 | # endif 21 | # define BOOST_PP_VARIADIC_SIZE_I(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63, size, ...) size 22 | # 23 | # endif 24 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/add_const.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard 3 | // Hinnant & John Maddock 2000. 4 | // Use, modification and distribution are subject to the Boost Software License, 5 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt). 7 | // 8 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 9 | 10 | #ifndef BOOST_TT_ADD_CONST_HPP_INCLUDED 11 | #define BOOST_TT_ADD_CONST_HPP_INCLUDED 12 | 13 | #include 14 | 15 | namespace boost { 16 | 17 | // * convert a type T to const type - add_const 18 | // this is not required since the result is always 19 | // the same as "T const", but it does suppress warnings 20 | // from some compilers: 21 | 22 | #if defined(BOOST_MSVC) 23 | // This bogus warning will appear when add_const is applied to a 24 | // const volatile reference because we can't detect const volatile 25 | // references with MSVC6. 26 | # pragma warning(push) 27 | # pragma warning(disable:4181) // warning C4181: qualifier applied to reference type ignored 28 | #endif 29 | 30 | template struct add_const 31 | { 32 | typedef T const type; 33 | }; 34 | 35 | #if defined(BOOST_MSVC) 36 | # pragma warning(pop) 37 | #endif 38 | 39 | template struct add_const 40 | { 41 | typedef T& type; 42 | }; 43 | 44 | #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) 45 | 46 | template using add_const_t = typename add_const::type; 47 | 48 | #endif 49 | 50 | } // namespace boost 51 | 52 | #endif // BOOST_TT_ADD_CONST_HPP_INCLUDED 53 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/add_lvalue_reference.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2010 John Maddock 2 | 3 | // Distributed under the Boost Software License, Version 1.0. 4 | // See http://www.boost.org/LICENSE_1_0.txt 5 | 6 | #ifndef BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP 7 | #define BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP 8 | 9 | #include 10 | 11 | namespace boost{ 12 | 13 | template struct add_lvalue_reference 14 | { 15 | typedef typename boost::add_reference::type type; 16 | }; 17 | 18 | #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES 19 | template struct add_lvalue_reference 20 | { 21 | typedef T& type; 22 | }; 23 | #endif 24 | 25 | #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) 26 | 27 | template using add_lvalue_reference_t = typename add_lvalue_reference::type; 28 | 29 | #endif 30 | 31 | } 32 | 33 | #endif // BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP 34 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/add_reference.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_ADD_REFERENCE_HPP_INCLUDED 10 | #define BOOST_TT_ADD_REFERENCE_HPP_INCLUDED 11 | 12 | #include 13 | #include 14 | 15 | namespace boost { 16 | 17 | namespace detail { 18 | 19 | // 20 | // We can't filter out rvalue_references at the same level as 21 | // references or we get ambiguities from msvc: 22 | // 23 | 24 | template 25 | struct add_reference_impl 26 | { 27 | typedef T& type; 28 | }; 29 | 30 | #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES 31 | template 32 | struct add_reference_impl 33 | { 34 | typedef T&& type; 35 | }; 36 | #endif 37 | 38 | } // namespace detail 39 | 40 | template struct add_reference 41 | { 42 | typedef typename boost::detail::add_reference_impl::type type; 43 | }; 44 | template struct add_reference 45 | { 46 | typedef T& type; 47 | }; 48 | 49 | // these full specialisations are always required: 50 | template <> struct add_reference { typedef void type; }; 51 | #ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS 52 | template <> struct add_reference { typedef const void type; }; 53 | template <> struct add_reference { typedef const volatile void type; }; 54 | template <> struct add_reference { typedef volatile void type; }; 55 | #endif 56 | 57 | #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) 58 | 59 | template using add_reference_t = typename add_reference::type; 60 | 61 | #endif 62 | 63 | 64 | } // namespace boost 65 | 66 | #endif // BOOST_TT_ADD_REFERENCE_HPP_INCLUDED 67 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/conditional.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2010. 2 | // Use, modification and distribution are subject to the Boost Software License, 3 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt). 5 | // 6 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 7 | 8 | 9 | #ifndef BOOST_TT_CONDITIONAL_HPP_INCLUDED 10 | #define BOOST_TT_CONDITIONAL_HPP_INCLUDED 11 | 12 | #include 13 | 14 | namespace boost { 15 | 16 | template struct conditional { typedef T type; }; 17 | template struct conditional { typedef U type; }; 18 | 19 | #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) 20 | 21 | template using conditional_t = typename conditional::type; 22 | 23 | #endif 24 | 25 | } // namespace boost 26 | 27 | 28 | #endif // BOOST_TT_CONDITIONAL_HPP_INCLUDED 29 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/conversion_traits.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright 2000 John Maddock (john@johnmaddock.co.uk) 3 | // Copyright 2000 Jeremy Siek (jsiek@lsc.nd.edu) 4 | // Copyright 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi) 5 | // 6 | // Use, modification and distribution are subject to the Boost Software License, 7 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 8 | // http://www.boost.org/LICENSE_1_0.txt). 9 | // 10 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 11 | 12 | #ifndef BOOST_TT_CONVERSION_TRAITS_HPP_INCLUDED 13 | #define BOOST_TT_CONVERSION_TRAITS_HPP_INCLUDED 14 | 15 | #include 16 | 17 | #endif // BOOST_TT_CONVERSION_TRAITS_HPP_INCLUDED 18 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/declval.hpp: -------------------------------------------------------------------------------- 1 | // declval.hpp -------------------------------------------------------------// 2 | 3 | // Copyright 2010 Vicente J. Botet Escriba 4 | 5 | // Distributed under the Boost Software License, Version 1.0. 6 | // See http://www.boost.org/LICENSE_1_0.txt 7 | 8 | #ifndef BOOST_TYPE_TRAITS_DECLVAL_HPP_INCLUDED 9 | #define BOOST_TYPE_TRAITS_DECLVAL_HPP_INCLUDED 10 | 11 | #include 12 | 13 | //----------------------------------------------------------------------------// 14 | 15 | #include 16 | 17 | //----------------------------------------------------------------------------// 18 | // // 19 | // C++03 implementation of // 20 | // 20.2.4 Function template declval [declval] // 21 | // Written by Vicente J. Botet Escriba // 22 | // // 23 | // 1 The library provides the function template declval to simplify the 24 | // definition of expressions which occur as unevaluated operands. 25 | // 2 Remarks: If this function is used, the program is ill-formed. 26 | // 3 Remarks: The template parameter T of declval may be an incomplete type. 27 | // [ Example: 28 | // 29 | // template 30 | // decltype(static_cast(declval())) convert(From&&); 31 | // 32 | // declares a function template convert which only participates in overloading 33 | // if the type From can be explicitly converted to type To. For another example 34 | // see class template common_type (20.9.7.6). -end example ] 35 | //----------------------------------------------------------------------------// 36 | 37 | namespace boost { 38 | 39 | template 40 | typename add_rvalue_reference::type declval() BOOST_NOEXCEPT; // as unevaluated operand 41 | 42 | } // namespace boost 43 | 44 | #endif // BOOST_TYPE_TRAITS_DECLVAL_HPP_INCLUDED 45 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/detail/is_function_msvc10_fix.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright John Maddock 2018. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_IS_FUNCTION_MSVC10_FIX_HPP_INCLUDED 10 | #define BOOST_TT_IS_FUNCTION_MSVC10_FIX_HPP_INCLUDED 11 | 12 | namespace boost { 13 | 14 | template struct is_function : public false_type {}; 15 | template struct is_function : public false_type {}; 16 | template struct is_function : public false_type {}; 17 | template struct is_function : public false_type {}; 18 | template struct is_function : public false_type {}; 19 | template struct is_function : public false_type {}; 20 | template struct is_function : public false_type {}; 21 | template struct is_function : public false_type {}; 22 | template struct is_function : public false_type {}; 23 | template struct is_function : public false_type {}; 24 | template struct is_function : public false_type {}; 25 | template struct is_function : public false_type {}; 26 | 27 | } // namespace boost 28 | 29 | #endif // BOOST_TT_IS_REFERENCE_HPP_INCLUDED 30 | 31 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/detail/yes_no_type.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright John Maddock and Steve Cleary 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | // 9 | // macros and helpers for working with integral-constant-expressions. 10 | 11 | #ifndef BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED 12 | #define BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED 13 | 14 | namespace boost { 15 | namespace type_traits { 16 | 17 | typedef char yes_type; 18 | struct no_type 19 | { 20 | char padding[8]; 21 | }; 22 | 23 | } // namespace type_traits 24 | } // namespace boost 25 | 26 | #endif // BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED 27 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/enable_if.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2003 The Trustees of Indiana University 3 | 4 | Authors: Jaakko Jarvi (jajarvi at osl.iu.edu) 5 | Jeremiah Willcock (jewillco at osl.iu.edu) 6 | Andrew Lumsdaine (lums at osl.iu.edu) 7 | 8 | Copyright 2018 Glen Joseph Fernandes 9 | (glenjofe@gmail.com) 10 | 11 | Distributed under the Boost Software License, 12 | Version 1.0. (See accompanying file LICENSE_1_0.txt 13 | or copy at http://www.boost.org/LICENSE_1_0.txt) 14 | */ 15 | #ifndef BOOST_TT_ENABLE_IF_HPP_INCLUDED 16 | #define BOOST_TT_ENABLE_IF_HPP_INCLUDED 17 | 18 | #include 19 | 20 | namespace boost { 21 | 22 | template 23 | struct enable_if_ { 24 | typedef T type; 25 | }; 26 | 27 | template 28 | struct enable_if_ { }; 29 | 30 | #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) 31 | template 32 | using enable_if_t = typename enable_if_::type; 33 | #endif 34 | 35 | } /* boost */ 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/has_trivial_assign.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_HAS_TRIVIAL_ASSIGN_HPP_INCLUDED 10 | #define BOOST_TT_HAS_TRIVIAL_ASSIGN_HPP_INCLUDED 11 | 12 | #include // size_t 13 | #include 14 | #include 15 | #include 16 | 17 | #if !defined(BOOST_HAS_TRIVIAL_ASSIGN) || defined(BOOST_MSVC) || defined(__GNUC__) || defined(BOOST_INTEL) || defined(__SUNPRO_CC) || defined(__clang__) 18 | #include 19 | #include 20 | #include 21 | #include 22 | #endif 23 | 24 | namespace boost { 25 | 26 | template 27 | struct has_trivial_assign : public integral_constant < bool, 28 | #ifdef BOOST_HAS_TRIVIAL_ASSIGN 29 | BOOST_HAS_TRIVIAL_ASSIGN(T) 30 | #else 31 | ::boost::is_pod::value && !::boost::is_const::value && !::boost::is_volatile::value 32 | #endif 33 | > {}; 34 | 35 | template<> struct has_trivial_assign : public false_type{}; 36 | #ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS 37 | template<> struct has_trivial_assign : public false_type{}; 38 | template<> struct has_trivial_assign : public false_type{}; 39 | template<> struct has_trivial_assign : public false_type{}; 40 | #endif 41 | template struct has_trivial_assign : public false_type{}; 42 | template struct has_trivial_assign : public false_type{}; 43 | #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) 44 | template struct has_trivial_assign : public false_type{}; 45 | #endif 46 | // Arrays are not explictly assignable: 47 | template struct has_trivial_assign : public false_type{}; 48 | template struct has_trivial_assign : public false_type{}; 49 | 50 | } // namespace boost 51 | 52 | #endif // BOOST_TT_HAS_TRIVIAL_ASSIGN_HPP_INCLUDED 53 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/has_trivial_constructor.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_HAS_TRIVIAL_CONSTRUCTOR_HPP_INCLUDED 10 | #define BOOST_TT_HAS_TRIVIAL_CONSTRUCTOR_HPP_INCLUDED 11 | 12 | #include 13 | #include 14 | #include 15 | 16 | #ifdef BOOST_HAS_TRIVIAL_CONSTRUCTOR 17 | #ifdef BOOST_HAS_SGI_TYPE_TRAITS 18 | #include 19 | #elif defined(__GNUC__) || defined(__SUNPRO_CC) 20 | #include 21 | #ifdef BOOST_INTEL 22 | #include 23 | #endif 24 | #endif 25 | #endif 26 | 27 | 28 | #if (defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 409)) || defined(BOOST_CLANG) || (defined(__SUNPRO_CC) && defined(BOOST_HAS_TRIVIAL_CONSTRUCTOR)) 29 | #include 30 | #define BOOST_TT_TRIVIAL_CONSTRUCT_FIX && is_default_constructible::value 31 | #else 32 | // 33 | // Mot all compilers, particularly older GCC versions can handle the fix above. 34 | #define BOOST_TT_TRIVIAL_CONSTRUCT_FIX 35 | #endif 36 | 37 | namespace boost { 38 | 39 | template struct has_trivial_constructor 40 | #ifdef BOOST_HAS_TRIVIAL_CONSTRUCTOR 41 | : public integral_constant ::value || BOOST_HAS_TRIVIAL_CONSTRUCTOR(T)) BOOST_TT_TRIVIAL_CONSTRUCT_FIX)>{}; 42 | #else 43 | : public integral_constant ::value>{}; 44 | #endif 45 | 46 | template <> struct has_trivial_constructor : public boost::false_type{}; 47 | template <> struct has_trivial_constructor : public boost::false_type{}; 48 | template <> struct has_trivial_constructor : public boost::false_type{}; 49 | template <> struct has_trivial_constructor : public boost::false_type{}; 50 | 51 | template struct has_trivial_default_constructor : public has_trivial_constructor {}; 52 | 53 | #undef BOOST_TT_TRIVIAL_CONSTRUCT_FIX 54 | 55 | } // namespace boost 56 | 57 | #endif // BOOST_TT_HAS_TRIVIAL_CONSTRUCTOR_HPP_INCLUDED 58 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/has_trivial_destructor.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_HAS_TRIVIAL_DESTRUCTOR_HPP_INCLUDED 10 | #define BOOST_TT_HAS_TRIVIAL_DESTRUCTOR_HPP_INCLUDED 11 | 12 | #include 13 | #include 14 | 15 | #ifdef BOOST_HAS_TRIVIAL_DESTRUCTOR 16 | 17 | #if defined(BOOST_INTEL) || defined(BOOST_MSVC) 18 | #include 19 | #endif 20 | #ifdef BOOST_HAS_SGI_TYPE_TRAITS 21 | #include 22 | #endif 23 | 24 | #if defined(__GNUC__) || defined(__clang__) || defined(__SUNPRO_CC) 25 | #include 26 | #endif 27 | 28 | namespace boost { 29 | 30 | template struct has_trivial_destructor : public integral_constant{}; 31 | #else 32 | #include 33 | 34 | namespace boost{ 35 | 36 | template struct has_trivial_destructor : public integral_constant::value>{}; 37 | #endif 38 | 39 | template <> struct has_trivial_destructor : public false_type{}; 40 | #ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS 41 | template <> struct has_trivial_destructor : public false_type{}; 42 | template <> struct has_trivial_destructor : public false_type{}; 43 | template <> struct has_trivial_destructor : public false_type{}; 44 | #endif 45 | 46 | } // namespace boost 47 | 48 | #endif // BOOST_TT_HAS_TRIVIAL_DESTRUCTOR_HPP_INCLUDED 49 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/is_arithmetic.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED 10 | #define BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED 11 | 12 | #include 13 | #include 14 | 15 | namespace boost { 16 | 17 | template 18 | struct is_arithmetic : public integral_constant::value || is_floating_point::value> {}; 19 | 20 | } // namespace boost 21 | 22 | #endif // BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED 23 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/is_array.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard 3 | // Hinnant & John Maddock 2000. 4 | // Use, modification and distribution are subject to the Boost Software License, 5 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt). 7 | // 8 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 9 | 10 | 11 | // Some fixes for is_array are based on a newsgroup posting by Jonathan Lundquist. 12 | 13 | 14 | #ifndef BOOST_TT_IS_ARRAY_HPP_INCLUDED 15 | #define BOOST_TT_IS_ARRAY_HPP_INCLUDED 16 | 17 | #include 18 | #include // size_t 19 | 20 | namespace boost { 21 | 22 | #if defined( BOOST_CODEGEARC ) 23 | template struct is_array : public integral_constant {}; 24 | #else 25 | template struct is_array : public false_type {}; 26 | #if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) 27 | template struct is_array : public true_type {}; 28 | template struct is_array : public true_type{}; 29 | template struct is_array : public true_type{}; 30 | template struct is_array : public true_type{}; 31 | #if !BOOST_WORKAROUND(BOOST_BORLANDC, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) 32 | template struct is_array : public true_type{}; 33 | template struct is_array : public true_type{}; 34 | template struct is_array : public true_type{}; 35 | template struct is_array : public true_type{}; 36 | #endif 37 | #endif 38 | 39 | #endif 40 | 41 | } // namespace boost 42 | 43 | #endif // BOOST_TT_IS_ARRAY_HPP_INCLUDED 44 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/is_const.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 3 | // Howard Hinnant and John Maddock 2000. 4 | // (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001 5 | 6 | // Use, modification and distribution are subject to the Boost Software License, 7 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 8 | // http://www.boost.org/LICENSE_1_0.txt). 9 | // 10 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 11 | 12 | // Fixed is_pointer, is_reference, is_const, is_volatile, is_same, 13 | // is_member_pointer based on the Simulated Partial Specialization work 14 | // of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or 15 | // http://groups.yahoo.com/group/boost/message/5441 16 | // Some workarounds in here use ideas suggested from "Generic: 17 | // Mappings between Types and Values" 18 | // by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html). 19 | 20 | 21 | #ifndef BOOST_TT_IS_CONST_HPP_INCLUDED 22 | #define BOOST_TT_IS_CONST_HPP_INCLUDED 23 | 24 | #include // size_t 25 | #include 26 | 27 | namespace boost { 28 | 29 | #if defined( BOOST_CODEGEARC ) 30 | 31 | template 32 | struct is_const : public integral_constant {}; 33 | 34 | #else 35 | 36 | template 37 | struct is_const : public false_type {}; 38 | template struct is_const : public true_type{}; 39 | template struct is_const : public true_type{}; 40 | template struct is_const : public true_type{}; 41 | 42 | #endif 43 | 44 | } // namespace boost 45 | 46 | #endif // BOOST_TT_IS_CONST_HPP_INCLUDED 47 | 48 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/is_floating_point.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000-2005. 2 | // Use, modification and distribution are subject to the Boost Software License, 3 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt). 5 | // 6 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 7 | 8 | #ifndef BOOST_TYPE_TRAITS_IS_FLOATING_HPP_INCLUDED 9 | #define BOOST_TYPE_TRAITS_IS_FLOATING_HPP_INCLUDED 10 | 11 | #include 12 | 13 | namespace boost { 14 | 15 | //* is a type T a floating-point type described in the standard (3.9.1p8) 16 | template struct is_floating_point : public false_type{}; 17 | template struct is_floating_point : public is_floating_point{}; 18 | template struct is_floating_point : public is_floating_point{}; 19 | template struct is_floating_point : public is_floating_point{}; 20 | template<> struct is_floating_point : public true_type{}; 21 | template<> struct is_floating_point : public true_type{}; 22 | template<> struct is_floating_point : public true_type{}; 23 | 24 | #if defined(BOOST_HAS_FLOAT128) 25 | template<> struct is_floating_point<__float128> : public true_type{}; 26 | #endif 27 | 28 | } // namespace boost 29 | 30 | #endif // BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED 31 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/is_function.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright 2000 John Maddock (john@johnmaddock.co.uk) 3 | // Copyright 2002 Aleksey Gurtovoy (agurtovoy@meta-comm.com) 4 | // 5 | // Use, modification and distribution are subject to the Boost Software License, 6 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt). 8 | // 9 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 10 | 11 | #ifndef BOOST_TT_IS_FUNCTION_HPP_INCLUDED 12 | #define BOOST_TT_IS_FUNCTION_HPP_INCLUDED 13 | 14 | #include 15 | #include 16 | 17 | #ifdef BOOST_TT_HAS_ASCCURATE_IS_FUNCTION 18 | 19 | #include 20 | 21 | #else 22 | 23 | #include 24 | 25 | #endif 26 | 27 | #endif // BOOST_TT_IS_FUNCTION_HPP_INCLUDED 28 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/is_lvalue_reference.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 3 | // Howard Hinnant and John Maddock 2000. 4 | // (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001 5 | 6 | // Use, modification and distribution are subject to the Boost Software License, 7 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 8 | // http://www.boost.org/LICENSE_1_0.txt). 9 | // 10 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 11 | 12 | // Fixed is_pointer, is_lvalue_reference, is_const, is_volatile, is_same, 13 | // is_member_pointer based on the Simulated Partial Specialization work 14 | // of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or 15 | // http://groups.yahoo.com/group/boost/message/5441 16 | // Some workarounds in here use ideas suggested from "Generic: 17 | // Mappings between Types and Values" 18 | // by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html). 19 | 20 | 21 | #ifndef BOOST_TT_IS_LVALUE_REFERENCE_HPP_INCLUDED 22 | #define BOOST_TT_IS_LVALUE_REFERENCE_HPP_INCLUDED 23 | 24 | #include 25 | 26 | namespace boost { 27 | 28 | #if defined( BOOST_CODEGEARC ) 29 | template struct is_lvalue_reference : public integral_constant{}; 30 | #else 31 | 32 | template struct is_lvalue_reference : public false_type{}; 33 | template struct is_lvalue_reference : public true_type{}; 34 | 35 | #if defined(BOOST_ILLEGAL_CV_REFERENCES) 36 | // these are illegal specialisations; cv-qualifies applied to 37 | // references have no effect according to [8.3.2p1], 38 | // C++ Builder requires them though as it treats cv-qualified 39 | // references as distinct types... 40 | template struct is_lvalue_reference : public true_type{}; 41 | template struct is_lvalue_reference : public true_type{}; 42 | template struct is_lvalue_reference : public true_type{}; 43 | #endif 44 | 45 | #endif 46 | 47 | } // namespace boost 48 | 49 | #endif // BOOST_TT_IS_REFERENCE_HPP_INCLUDED 50 | 51 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/is_member_function_pointer.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard 3 | // Hinnant & John Maddock 2000. 4 | // Use, modification and distribution are subject to the Boost Software License, 5 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt). 7 | // 8 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 9 | 10 | 11 | #ifndef BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED 12 | #define BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED 13 | 14 | #include 15 | 16 | #ifdef BOOST_TT_HAS_ASCCURATE_IS_FUNCTION 17 | 18 | #include 19 | 20 | #else 21 | 22 | #include 23 | 24 | #endif 25 | 26 | #endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED 27 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/is_member_pointer.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 3 | // Howard Hinnant and John Maddock 2000. 4 | // (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001 5 | 6 | // Use, modification and distribution are subject to the Boost Software License, 7 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 8 | // http://www.boost.org/LICENSE_1_0.txt). 9 | // 10 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 11 | 12 | // Fixed is_pointer, is_reference, is_const, is_volatile, is_same, 13 | // is_member_pointer based on the Simulated Partial Specialization work 14 | // of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or 15 | // http://groups.yahoo.com/group/boost/message/5441 16 | // Some workarounds in here use ideas suggested from "Generic: 17 | // Mappings between Types and Values" 18 | // by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html). 19 | 20 | 21 | #ifndef BOOST_TT_IS_MEMBER_POINTER_HPP_INCLUDED 22 | #define BOOST_TT_IS_MEMBER_POINTER_HPP_INCLUDED 23 | 24 | #include 25 | #include 26 | 27 | namespace boost { 28 | 29 | #if defined( BOOST_CODEGEARC ) 30 | template struct is_member_pointer : public integral_constant{}; 31 | #else 32 | template struct is_member_pointer : public integral_constant::value>{}; 33 | template struct is_member_pointer : public true_type{}; 34 | 35 | #if !BOOST_WORKAROUND(__MWERKS__,<=0x3003) && !BOOST_WORKAROUND(__IBMCPP__, <=600) 36 | template struct is_member_pointer : public true_type{}; 37 | template struct is_member_pointer : public true_type{}; 38 | template struct is_member_pointer : public true_type{}; 39 | #endif 40 | 41 | #endif 42 | 43 | } // namespace boost 44 | 45 | #endif // BOOST_TT_IS_MEMBER_POINTER_HPP_INCLUDED 46 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/is_noncopyable.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_TYPE_TRAITS_IS_NONCOPYABLE_HPP_INCLUDED 2 | #define BOOST_TYPE_TRAITS_IS_NONCOPYABLE_HPP_INCLUDED 3 | 4 | // 5 | // Copyright 2018 Peter Dimov 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt 10 | // 11 | // is_noncopyable returns whether T is derived from boost::noncopyable 12 | // 13 | 14 | #include 15 | 16 | namespace boost 17 | { 18 | 19 | #ifndef BOOST_NONCOPYABLE_BASE_TOKEN_DEFINED 20 | #define BOOST_NONCOPYABLE_BASE_TOKEN_DEFINED 21 | 22 | // boost::noncopyable derives from noncopyable_::base_token to enable us 23 | // to recognize it. The definition is macro-guarded so that we can replicate 24 | // it here without including boost/core/noncopyable.hpp, which is in Core. 25 | 26 | namespace noncopyable_ 27 | { 28 | struct base_token {}; 29 | } 30 | 31 | #endif // #ifndef BOOST_NONCOPYABLE_BASE_TOKEN_DEFINED 32 | 33 | template struct is_noncopyable: is_base_and_derived 34 | { 35 | }; 36 | 37 | } // namespace boost 38 | 39 | #endif // #ifndef BOOST_TYPE_TRAITS_IS_NONCOPYABLE_HPP_INCLUDED 40 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/is_pod.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_IS_POD_HPP_INCLUDED 10 | #define BOOST_TT_IS_POD_HPP_INCLUDED 11 | 12 | #include // size_t 13 | #include 14 | #include 15 | #include 16 | #include 17 | 18 | #ifdef __SUNPRO_CC 19 | #include 20 | #endif 21 | 22 | #include 23 | 24 | #ifndef BOOST_IS_POD 25 | #define BOOST_INTERNAL_IS_POD(T) false 26 | #else 27 | #define BOOST_INTERNAL_IS_POD(T) BOOST_IS_POD(T) 28 | #endif 29 | 30 | namespace boost { 31 | 32 | // forward declaration, needed by 'is_pod_array_helper' template below 33 | template< typename T > struct is_POD; 34 | 35 | template struct is_pod 36 | : public integral_constant::value || ::boost::is_void::value || BOOST_INTERNAL_IS_POD(T)> 37 | {}; 38 | 39 | #if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) 40 | template struct is_pod : public is_pod{}; 41 | #endif 42 | 43 | 44 | // the following help compilers without partial specialization support: 45 | template<> struct is_pod : public true_type{}; 46 | 47 | #ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS 48 | template<> struct is_pod : public true_type{}; 49 | template<> struct is_pod : public true_type{}; 50 | template<> struct is_pod : public true_type{}; 51 | #endif 52 | 53 | template struct is_POD : public is_pod{}; 54 | 55 | } // namespace boost 56 | 57 | #undef BOOST_INTERNAL_IS_POD 58 | 59 | #endif // BOOST_TT_IS_POD_HPP_INCLUDED 60 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/is_pointer.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 3 | // Howard Hinnant and John Maddock 2000. 4 | // (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001 5 | 6 | // Use, modification and distribution are subject to the Boost Software License, 7 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 8 | // http://www.boost.org/LICENSE_1_0.txt). 9 | // 10 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 11 | 12 | // Fixed is_pointer, is_reference, is_const, is_volatile, is_same, 13 | // is_member_pointer based on the Simulated Partial Specialization work 14 | // of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or 15 | // http://groups.yahoo.com/group/boost/message/5441 16 | // Some workarounds in here use ideas suggested from "Generic: 17 | // Mappings between Types and Values" 18 | // by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html). 19 | 20 | 21 | #ifndef BOOST_TT_IS_POINTER_HPP_INCLUDED 22 | #define BOOST_TT_IS_POINTER_HPP_INCLUDED 23 | 24 | #include 25 | 26 | namespace boost { 27 | 28 | #if defined( BOOST_CODEGEARC ) 29 | template struct is_pointer : public integral_constant{}; 30 | #else 31 | template struct is_pointer : public false_type{}; 32 | template struct is_pointer : public true_type{}; 33 | template struct is_pointer : public true_type{}; 34 | template struct is_pointer : public true_type{}; 35 | template struct is_pointer : public true_type{}; 36 | 37 | #ifdef BOOST_MSVC 38 | template struct is_pointer : public is_pointer{}; 39 | template struct is_pointer : public is_pointer{}; 40 | template struct is_pointer : public is_pointer{}; 41 | #endif 42 | 43 | #endif 44 | 45 | } // namespace boost 46 | 47 | #endif // BOOST_TT_IS_POINTER_HPP_INCLUDED 48 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/is_reference.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 3 | // Howard Hinnant and John Maddock 2000, 2010. 4 | // (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001 5 | 6 | // Use, modification and distribution are subject to the Boost Software License, 7 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 8 | // http://www.boost.org/LICENSE_1_0.txt). 9 | // 10 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 11 | 12 | #ifndef BOOST_TT_IS_REFERENCE_HPP_INCLUDED 13 | #define BOOST_TT_IS_REFERENCE_HPP_INCLUDED 14 | 15 | #include 16 | #include 17 | 18 | namespace boost { 19 | 20 | template struct is_reference 21 | : public 22 | integral_constant< 23 | bool, 24 | ::boost::is_lvalue_reference::value || ::boost::is_rvalue_reference::value> 25 | {}; 26 | 27 | } // namespace boost 28 | 29 | #endif // BOOST_TT_IS_REFERENCE_HPP_INCLUDED 30 | 31 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/is_rvalue_reference.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright John Maddock 2010. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_IS_RVALUE_REFERENCE_HPP_INCLUDED 10 | #define BOOST_TT_IS_RVALUE_REFERENCE_HPP_INCLUDED 11 | 12 | #include 13 | #include 14 | 15 | namespace boost { 16 | 17 | template struct is_rvalue_reference : public false_type {}; 18 | #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES 19 | template struct is_rvalue_reference : public true_type {}; 20 | #endif 21 | 22 | } // namespace boost 23 | 24 | #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, <= 1700) 25 | #include 26 | #endif 27 | 28 | #endif // BOOST_TT_IS_REFERENCE_HPP_INCLUDED 29 | 30 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/is_same.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 3 | // Howard Hinnant and John Maddock 2000. 4 | // (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001 5 | 6 | // Use, modification and distribution are subject to the Boost Software License, 7 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 8 | // http://www.boost.org/LICENSE_1_0.txt). 9 | // 10 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 11 | 12 | // Fixed is_pointer, is_reference, is_const, is_volatile, is_same, 13 | // is_member_pointer based on the Simulated Partial Specialization work 14 | // of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or 15 | // http://groups.yahoo.com/group/boost/message/5441 16 | // Some workarounds in here use ideas suggested from "Generic: 17 | // Mappings between Types and Values" 18 | // by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html). 19 | 20 | 21 | #ifndef BOOST_TT_IS_SAME_HPP_INCLUDED 22 | #define BOOST_TT_IS_SAME_HPP_INCLUDED 23 | 24 | #include 25 | 26 | namespace boost { 27 | 28 | 29 | template struct is_same : public false_type {}; 30 | template struct is_same : public true_type {}; 31 | #if BOOST_WORKAROUND(BOOST_BORLANDC, < 0x600) 32 | // without this, Borland's compiler gives the wrong answer for 33 | // references to arrays: 34 | template struct is_same : public true_type{}; 35 | #endif 36 | 37 | 38 | } // namespace boost 39 | 40 | #endif // BOOST_TT_IS_SAME_HPP_INCLUDED 41 | 42 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/is_scalar.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_IS_SCALAR_HPP_INCLUDED 10 | #define BOOST_TT_IS_SCALAR_HPP_INCLUDED 11 | 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | 18 | namespace boost { 19 | 20 | template 21 | struct is_scalar 22 | : public integral_constant::value || ::boost::is_enum::value || ::boost::is_pointer::value || ::boost::is_member_pointer::value> 23 | {}; 24 | 25 | } // namespace boost 26 | 27 | #endif // BOOST_TT_IS_SCALAR_HPP_INCLUDED 28 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/is_stateless.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_IS_STATELESS_HPP_INCLUDED 10 | #define BOOST_TT_IS_STATELESS_HPP_INCLUDED 11 | 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | 19 | namespace boost { 20 | 21 | template 22 | struct is_stateless 23 | : public integral_constant::value 25 | && ::boost::has_trivial_copy::value 26 | && ::boost::has_trivial_destructor::value 27 | && ::boost::is_class::value 28 | && ::boost::is_empty::value)> 29 | {}; 30 | 31 | } // namespace boost 32 | 33 | #endif // BOOST_TT_IS_STATELESS_HPP_INCLUDED 34 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/is_union.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard 3 | // Hinnant & John Maddock 2000. 4 | // Use, modification and distribution are subject to the Boost Software License, 5 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt). 7 | // 8 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 9 | 10 | 11 | #ifndef BOOST_TT_IS_UNION_HPP_INCLUDED 12 | #define BOOST_TT_IS_UNION_HPP_INCLUDED 13 | 14 | #include 15 | #include 16 | 17 | namespace boost { 18 | 19 | #ifdef BOOST_IS_UNION 20 | template struct is_union : public integral_constant {}; 21 | #else 22 | template struct is_union : public integral_constant {}; 23 | #endif 24 | 25 | template struct is_union : public is_union{}; 26 | template struct is_union : public is_union{}; 27 | template struct is_union : public is_union{}; 28 | 29 | } // namespace boost 30 | 31 | #endif // BOOST_TT_IS_UNION_HPP_INCLUDED 32 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/is_void.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_IS_VOID_HPP_INCLUDED 10 | #define BOOST_TT_IS_VOID_HPP_INCLUDED 11 | 12 | #include 13 | 14 | namespace boost { 15 | 16 | template 17 | struct is_void : public false_type {}; 18 | 19 | template<> struct is_void : public true_type {}; 20 | template<> struct is_void : public true_type{}; 21 | template<> struct is_void : public true_type{}; 22 | template<> struct is_void : public true_type{}; 23 | 24 | } // namespace boost 25 | 26 | #endif // BOOST_TT_IS_VOID_HPP_INCLUDED 27 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/is_volatile.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 3 | // Howard Hinnant and John Maddock 2000. 4 | // (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001 5 | 6 | // Use, modification and distribution are subject to the Boost Software License, 7 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 8 | // http://www.boost.org/LICENSE_1_0.txt). 9 | // 10 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 11 | 12 | // Fixed is_pointer, is_reference, is_const, is_volatile, is_same, 13 | // is_member_pointer based on the Simulated Partial Specialization work 14 | // of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or 15 | // http://groups.yahoo.com/group/boost/message/5441 16 | // Some workarounds in here use ideas suggested from "Generic: 17 | // Mappings between Types and Values" 18 | // by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html). 19 | 20 | 21 | #ifndef BOOST_TT_IS_VOLATILE_HPP_INCLUDED 22 | #define BOOST_TT_IS_VOLATILE_HPP_INCLUDED 23 | 24 | #include // size_t 25 | #include 26 | 27 | namespace boost { 28 | 29 | #if defined( BOOST_CODEGEARC ) 30 | 31 | template 32 | struct is_volatile : public integral_constant {}; 33 | 34 | #else 35 | 36 | template 37 | struct is_volatile : public false_type {}; 38 | template struct is_volatile : public true_type{}; 39 | template struct is_volatile : public true_type{}; 40 | template struct is_volatile : public true_type{}; 41 | 42 | #endif 43 | 44 | } // namespace boost 45 | 46 | #endif // BOOST_TT_IS_VOLATILE_HPP_INCLUDED 47 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/remove_const.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard 3 | // Hinnant & John Maddock 2000. 4 | // Use, modification and distribution are subject to the Boost Software License, 5 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt). 7 | // 8 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 9 | 10 | 11 | #ifndef BOOST_TT_REMOVE_CONST_HPP_INCLUDED 12 | #define BOOST_TT_REMOVE_CONST_HPP_INCLUDED 13 | 14 | #include 15 | #include // size_t 16 | #include 17 | 18 | namespace boost { 19 | 20 | // convert a type T to a non-cv-qualified type - remove_const 21 | template struct remove_const{ typedef T type; }; 22 | template struct remove_const{ typedef T type; }; 23 | 24 | #if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) 25 | template struct remove_const{ typedef T type[N]; }; 26 | #if !BOOST_WORKAROUND(BOOST_BORLANDC, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) 27 | template struct remove_const{ typedef T type[]; }; 28 | #endif 29 | #endif 30 | 31 | #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) 32 | 33 | template using remove_const_t = typename remove_const::type; 34 | 35 | #endif 36 | 37 | } // namespace boost 38 | 39 | #endif // BOOST_TT_REMOVE_CONST_HPP_INCLUDED 40 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/remove_cv.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard 3 | // Hinnant & John Maddock 2000. 4 | // Use, modification and distribution are subject to the Boost Software License, 5 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt). 7 | // 8 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 9 | 10 | 11 | #ifndef BOOST_TT_REMOVE_CV_HPP_INCLUDED 12 | #define BOOST_TT_REMOVE_CV_HPP_INCLUDED 13 | 14 | #include 15 | #include 16 | #include // size_t 17 | 18 | namespace boost { 19 | 20 | // convert a type T to a non-cv-qualified type - remove_cv 21 | template struct remove_cv{ typedef T type; }; 22 | template struct remove_cv{ typedef T type; }; 23 | template struct remove_cv{ typedef T type; }; 24 | template struct remove_cv{ typedef T type; }; 25 | 26 | #if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) 27 | template struct remove_cv{ typedef T type[N]; }; 28 | template struct remove_cv{ typedef T type[N]; }; 29 | template struct remove_cv{ typedef T type[N]; }; 30 | #if !BOOST_WORKAROUND(BOOST_BORLANDC, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) 31 | template struct remove_cv{ typedef T type[]; }; 32 | template struct remove_cv{ typedef T type[]; }; 33 | template struct remove_cv{ typedef T type[]; }; 34 | #endif 35 | #endif 36 | 37 | #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) 38 | 39 | template using remove_cv_t = typename remove_cv::type; 40 | 41 | #endif 42 | 43 | } // namespace boost 44 | 45 | #endif // BOOST_TT_REMOVE_CV_HPP_INCLUDED 46 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/type_traits/remove_reference.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_REMOVE_REFERENCE_HPP_INCLUDED 10 | #define BOOST_TT_REMOVE_REFERENCE_HPP_INCLUDED 11 | 12 | #include 13 | #include 14 | 15 | namespace boost { 16 | 17 | 18 | namespace detail{ 19 | // 20 | // We can't filter out rvalue_references at the same level as 21 | // references or we get ambiguities from msvc: 22 | // 23 | template 24 | struct remove_rvalue_ref 25 | { 26 | typedef T type; 27 | }; 28 | #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES 29 | template 30 | struct remove_rvalue_ref 31 | { 32 | typedef T type; 33 | }; 34 | #endif 35 | 36 | } // namespace detail 37 | 38 | template struct remove_reference{ typedef typename boost::detail::remove_rvalue_ref::type type; }; 39 | template struct remove_reference{ typedef T type; }; 40 | 41 | #if defined(BOOST_ILLEGAL_CV_REFERENCES) 42 | // these are illegal specialisations; cv-qualifies applied to 43 | // references have no effect according to [8.3.2p1], 44 | // C++ Builder requires them though as it treats cv-qualified 45 | // references as distinct types... 46 | template struct remove_reference{ typedef T type; }; 47 | template struct remove_reference{ typedef T type; }; 48 | template struct remove_reference{ typedef T type; }; 49 | #endif 50 | 51 | #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) 52 | 53 | template using remove_reference_t = typename remove_reference::type; 54 | 55 | #endif 56 | 57 | } // namespace boost 58 | 59 | #endif // BOOST_TT_REMOVE_REFERENCE_HPP_INCLUDED 60 | -------------------------------------------------------------------------------- /ThirdParty/Boost/Files/boost/version.hpp: -------------------------------------------------------------------------------- 1 | // Boost version.hpp configuration header file ------------------------------// 2 | 3 | // (C) Copyright John maddock 1999. Distributed under the Boost 4 | // Software License, Version 1.0. (See accompanying file 5 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | 7 | // See http://www.boost.org/libs/config for documentation 8 | 9 | #ifndef BOOST_VERSION_HPP 10 | #define BOOST_VERSION_HPP 11 | 12 | // 13 | // Caution: this is the only Boost header that is guaranteed 14 | // to change with every Boost release. Including this header 15 | // will cause a recompile every time a new Boost version is 16 | // used. 17 | // 18 | // BOOST_VERSION % 100 is the patch level 19 | // BOOST_VERSION / 100 % 1000 is the minor version 20 | // BOOST_VERSION / 100000 is the major version 21 | 22 | #define BOOST_VERSION 107500 23 | 24 | // 25 | // BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION 26 | // but as a *string* in the form "x_y[_z]" where x is the major version 27 | // number, y is the minor version number, and z is the patch level if not 0. 28 | // This is used by to select which library version to link to. 29 | 30 | #define BOOST_LIB_VERSION "1_75" 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /ThirdParty/Boost/LICENSE: -------------------------------------------------------------------------------- 1 | Boost Software License - Version 1.0 - August 17th, 2003 2 | 3 | Permission is hereby granted, free of charge, to any person or organization 4 | obtaining a copy of the software and accompanying documentation covered by 5 | this license (the "Software") to use, reproduce, display, distribute, 6 | execute, and transmit the Software, and to prepare derivative works of the 7 | Software, and to permit third-parties to whom the Software is furnished to 8 | do so, all subject to the following: 9 | 10 | The copyright notices in the Software and this entire statement, including 11 | the above license grant, this restriction and the following disclaimer, 12 | must be included in all copies of the Software, in whole or in part, and 13 | all derivative works of the Software, unless such copies or derivative 14 | works are solely in the form of machine-executable object code generated by 15 | a source language processor. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 20 | SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 21 | FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 22 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 | DEALINGS IN THE SOFTWARE. 24 | -------------------------------------------------------------------------------- /ThirdParty/Boost/README.md: -------------------------------------------------------------------------------- 1 | # Boost Third-Party Package 2 | 3 | With the goal of limiting its size, this package includes only those Boost modules needed by the application along with their dependencies. 4 | 5 | 6 | ## Included Modules 7 | 8 | This application uses the following Boost modules. 9 | - circular_buffer 10 | 11 | 12 | ## Recreation Instructions 13 | 14 | To recreate a Boost package consisting of only selected modules from a Boost source package: 15 | 16 | 1. [Download](https://www.boost.org/users/download/) a source package. 17 | 1. Extract the source package anywhere. The remaining steps assume the source package is extracted to `C:\boost`. 18 | 1. Bootstrap the Boost build system. At a command prompt: 19 | - `c:` 20 | - `cd \boost\boost*` 21 | - `bootstrap.bat` 22 | 1. Build the `bcp` tool. Continuing at the same command prompt as in the previous step: 23 | - `b2 tools\bcp` 24 | 1. Use the `bcp` tool to generate a report of the licenses associated with the desired Boost modules. This file need not be included in the package but is useful as a licensing reference. Continuing at the same command prompt as in the previous step: 25 | - `dist\bin\bcp.exe --report ` 26 | 1. Use the `bcp` tool to create a package with only specific Boost modules. Continuing at the same command prompt as in the previous step: 27 | - `dist\bin\bcp.exe ` 28 | -------------------------------------------------------------------------------- /ThirdParty/Boost/VERSION: -------------------------------------------------------------------------------- 1 | boost: 1.75.0 -------------------------------------------------------------------------------- /ThirdParty/Hookshot/Files/Include/Hookshot/Hookshot.h: -------------------------------------------------------------------------------- 1 | /*************************************************************************************************** 2 | * Hookshot 3 | * General-purpose library for injecting DLLs and hooking function calls. 4 | *************************************************************************************************** 5 | * Authored by Samuel Grossman 6 | * Copyright (c) 2019-2025 7 | ***********************************************************************************************//** 8 | * @file Hookshot.h 9 | * Public interface for interacting with Hookshot. Intended to be included externally. 10 | **************************************************************************************************/ 11 | 12 | #pragma once 13 | 14 | #include "HookshotFunctions.h" 15 | #include "HookshotTypes.h" 16 | -------------------------------------------------------------------------------- /ThirdParty/Hookshot/LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2019-2025, Samuel Grossman 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | * Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | * Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | * Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /ThirdParty/ThirdParty.Boost.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | $(MSBuildThisFileDirectory)Boost\Files;%(AdditionalIncludeDirectories) 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ThirdParty/ThirdParty.Hookshot.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | $(MSBuildThisFileDirectory)Hookshot\Files\Include;%(AdditionalIncludeDirectories) 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ThirdParty/ThirdParty.XstdBitSet.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | $(MSBuildThisFileDirectory)XstdBitSet\Files\include;%(AdditionalIncludeDirectories) 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ThirdParty/XstdBitSet/Files/LICENSE_1_0.txt: -------------------------------------------------------------------------------- 1 | Boost Software License - Version 1.0 - August 17th, 2003 2 | 3 | Permission is hereby granted, free of charge, to any person or organization 4 | obtaining a copy of the software and accompanying documentation covered by 5 | this license (the "Software") to use, reproduce, display, distribute, 6 | execute, and transmit the Software, and to prepare derivative works of the 7 | Software, and to permit third-parties to whom the Software is furnished to 8 | do so, all subject to the following: 9 | 10 | The copyright notices in the Software and this entire statement, including 11 | the above license grant, this restriction and the following disclaimer, 12 | must be included in all copies of the Software, in whole or in part, and 13 | all derivative works of the Software, unless such copies or derivative 14 | works are solely in the form of machine-executable object code generated by 15 | a source language processor. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 20 | SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 21 | FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 22 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 | DEALINGS IN THE SOFTWARE. 24 | -------------------------------------------------------------------------------- /ThirdParty/XstdBitSet/LICENSE: -------------------------------------------------------------------------------- 1 | Boost Software License - Version 1.0 - August 17th, 2003 2 | 3 | Permission is hereby granted, free of charge, to any person or organization 4 | obtaining a copy of the software and accompanying documentation covered by 5 | this license (the "Software") to use, reproduce, display, distribute, 6 | execute, and transmit the Software, and to prepare derivative works of the 7 | Software, and to permit third-parties to whom the Software is furnished to 8 | do so, all subject to the following: 9 | 10 | The copyright notices in the Software and this entire statement, including 11 | the above license grant, this restriction and the following disclaimer, 12 | must be included in all copies of the Software, in whole or in part, and 13 | all derivative works of the Software, unless such copies or derivative 14 | works are solely in the form of machine-executable object code generated by 15 | a source language processor. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 20 | SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 21 | FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 22 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 | DEALINGS IN THE SOFTWARE. 24 | -------------------------------------------------------------------------------- /ThirdParty/XstdBitSet/VERSION: -------------------------------------------------------------------------------- 1 | bit_set: commit 8f5e1073112d3cc92ba4e691b24d7959edf237a0 -------------------------------------------------------------------------------- /dinput.def: -------------------------------------------------------------------------------- 1 | LIBRARY dinput 2 | EXPORTS 3 | DirectInputCreateA @1 4 | DirectInputCreateW @2 5 | DirectInputCreateEx @3 6 | DllRegisterServer=LegacyDllRegisterServer PRIVATE 7 | DllUnregisterServer=LegacyDllUnregisterServer PRIVATE 8 | DllCanUnloadNow PRIVATE 9 | DllGetClassObject=LegacyDllGetClassObject PRIVATE 10 | -------------------------------------------------------------------------------- /dinput8.def: -------------------------------------------------------------------------------- 1 | LIBRARY dinput8 2 | EXPORTS 3 | DirectInput8Create @1 4 | DllRegisterServer PRIVATE 5 | DllUnregisterServer PRIVATE 6 | DllCanUnloadNow PRIVATE 7 | DllGetClassObject PRIVATE 8 | --------------------------------------------------------------------------------