From c467671ae8b6ec161c17e86f3383fd0625f755b8 Mon Sep 17 00:00:00 2001 From: Clyne Sullivan Date: Fri, 19 Aug 2022 19:48:10 -0400 Subject: remove sol2 (will re-add as submodule) --- lib/sol2/include/sol/traits.hpp | 708 ---------------------------------------- 1 file changed, 708 deletions(-) delete mode 100644 lib/sol2/include/sol/traits.hpp (limited to 'lib/sol2/include/sol/traits.hpp') diff --git a/lib/sol2/include/sol/traits.hpp b/lib/sol2/include/sol/traits.hpp deleted file mode 100644 index b47fdc9..0000000 --- a/lib/sol2/include/sol/traits.hpp +++ /dev/null @@ -1,708 +0,0 @@ -// sol3 - -// The MIT License (MIT) - -// Copyright (c) 2013-2019 Rapptz, ThePhD and contributors - -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -// the Software, and to permit persons to whom the Software is furnished to do so, -// subject to the following conditions: - -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. - -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -#ifndef SOL_TRAITS_HPP -#define SOL_TRAITS_HPP - -#include "tuple.hpp" -#include "bind_traits.hpp" -#include "pointer_like.hpp" -#include "base_traits.hpp" -#include "string_view.hpp" - -#include -#include -#include -#include -#include -#include -#include - - -namespace sol { - namespace meta { - template - struct unwrapped { - typedef T type; - }; - - template - struct unwrapped> { - typedef T type; - }; - - template - using unwrapped_t = typename unwrapped::type; - - template - struct unwrap_unqualified : unwrapped> {}; - - template - using unwrap_unqualified_t = typename unwrap_unqualified::type; - - template - struct remove_member_pointer; - - template - struct remove_member_pointer { - typedef R type; - }; - - template - struct remove_member_pointer { - typedef R type; - }; - - template - using remove_member_pointer_t = remove_member_pointer; - - template - struct all_same : std::true_type {}; - - template - struct all_same : std::integral_constant::value && all_same::value> {}; - - template - struct any_same : std::false_type {}; - - template - struct any_same : std::integral_constant::value || any_same::value> {}; - - template - constexpr inline bool any_same_v = any_same::value; - - template - using boolean = std::integral_constant; - - template - constexpr inline bool boolean_v = boolean::value; - - template - using neg = boolean; - - template - constexpr inline bool neg_v = neg::value; - - template - struct all : boolean {}; - - template - struct all : std::conditional_t, boolean> {}; - - template - struct any : boolean {}; - - template - struct any : std::conditional_t, any> {}; - - template - constexpr inline bool all_v = all::value; - - template - constexpr inline bool any_v = any::value; - - enum class enable_t { _ }; - - constexpr const auto enabler = enable_t::_; - - template - using disable_if_t = std::enable_if_t; - - template - using enable = std::enable_if_t::value, enable_t>; - - template - using disable = std::enable_if_t>::value, enable_t>; - - template - using enable_any = std::enable_if_t::value, enable_t>; - - template - using disable_any = std::enable_if_t>::value, enable_t>; - - template - struct find_in_pack_v : boolean {}; - - template - struct find_in_pack_v : any, find_in_pack_v> {}; - - namespace meta_detail { - template - struct index_in_pack : std::integral_constant {}; - - template - struct index_in_pack - : conditional_t::value, std::integral_constant, index_in_pack> {}; - } // namespace meta_detail - - template - struct index_in_pack : meta_detail::index_in_pack<0, T, Args...> {}; - - template - struct index_in : meta_detail::index_in_pack<0, T, List> {}; - - template - struct index_in> : meta_detail::index_in_pack<0, T, Args...> {}; - - template - struct at_in_pack {}; - - template - using at_in_pack_t = typename at_in_pack::type; - - template - struct at_in_pack : std::conditional> {}; - - template - struct at_in_pack<0, Arg, Args...> { - typedef Arg type; - }; - - namespace meta_detail { - template - using on_even = meta::boolean<(TI::value % 2) == 0>; - - template - using on_odd = meta::boolean<(TI::value % 2) == 1>; - - template - using on_always = std::true_type; - - template