diff options
| author | untodesu <kirill@untode.su> | 2025-06-28 01:59:49 +0500 |
|---|---|---|
| committer | untodesu <kirill@untode.su> | 2025-06-28 01:59:49 +0500 |
| commit | 61e5bcef2629e2d68b805a956a96fff264d4f74d (patch) | |
| tree | bca3a94bac79d34e3c0db57c77604f5a823ecbda /deps/include/entt/core/tuple.hpp | |
| parent | 88c01588aa0830e219eaa62588839e4d1e2883ce (diff) | |
| download | voxelius-61e5bcef2629e2d68b805a956a96fff264d4f74d.tar.bz2 voxelius-61e5bcef2629e2d68b805a956a96fff264d4f74d.zip | |
Restructure dependencies and update to C++20
- Nuked static_assert from almost everywhere in the project
- Nuked binary dependency support. Might add one later though
- Separated dependency headers into a separate include subdirectory
- Grafted a thirdpartylegalnotices.txt generator from RITEG
- Pushed development snapshot version to 2126 (26th week of 2025)
Diffstat (limited to 'deps/include/entt/core/tuple.hpp')
| -rw-r--r-- | deps/include/entt/core/tuple.hpp | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/deps/include/entt/core/tuple.hpp b/deps/include/entt/core/tuple.hpp deleted file mode 100644 index a64c51c..0000000 --- a/deps/include/entt/core/tuple.hpp +++ /dev/null @@ -1,95 +0,0 @@ -#ifndef ENTT_CORE_TUPLE_HPP
-#define ENTT_CORE_TUPLE_HPP
-
-#include <tuple>
-#include <type_traits>
-#include <utility>
-
-namespace entt {
-
-/*! @cond TURN_OFF_DOXYGEN */
-namespace internal {
-
-template<typename>
-struct is_tuple_impl: std::false_type {};
-
-template<typename... Args>
-struct is_tuple_impl<std::tuple<Args...>>: std::true_type {};
-
-} // namespace internal
-/*! @endcond */
-
-/**
- * @brief Provides the member constant `value` to true if a given type is a
- * tuple, false otherwise.
- * @tparam Type The type to test.
- */
-template<typename Type>
-struct is_tuple: internal::is_tuple_impl<std::remove_cv_t<Type>> {};
-
-/**
- * @brief Helper variable template.
- * @tparam Type The type to test.
- */
-template<typename Type>
-inline constexpr bool is_tuple_v = is_tuple<Type>::value;
-
-/**
- * @brief Utility function to unwrap tuples of a single element.
- * @tparam Type Tuple type of any sizes.
- * @param value A tuple object of the given type.
- * @return The tuple itself if it contains more than one element, the first
- * element otherwise.
- */
-template<typename Type>
-constexpr decltype(auto) unwrap_tuple(Type &&value) noexcept {
- if constexpr(std::tuple_size_v<std::remove_reference_t<Type>> == 1u) {
- return std::get<0>(std::forward<Type>(value));
- } else {
- return std::forward<Type>(value);
- }
-}
-
-/**
- * @brief Utility class to forward-and-apply tuple objects.
- * @tparam Func Type of underlying invocable object.
- */
-template<typename Func>
-struct forward_apply: private Func {
- /**
- * @brief Constructs a forward-and-apply object.
- * @tparam Args Types of arguments to use to construct the new instance.
- * @param args Parameters to use to construct the instance.
- */
- template<typename... Args>
- constexpr forward_apply(Args &&...args) noexcept(std::is_nothrow_constructible_v<Func, Args...>)
- : Func{std::forward<Args>(args)...} {}
-
- /**
- * @brief Forwards and applies the arguments with the underlying function.
- * @tparam Type Tuple-like type to forward to the underlying function.
- * @param args Parameters to forward to the underlying function.
- * @return Return value of the underlying function, if any.
- */
- template<typename Type>
- constexpr decltype(auto) operator()(Type &&args) noexcept(noexcept(std::apply(std::declval<Func &>(), args))) {
- return std::apply(static_cast<Func &>(*this), std::forward<Type>(args));
- }
-
- /*! @copydoc operator()() */
- template<typename Type>
- constexpr decltype(auto) operator()(Type &&args) const noexcept(noexcept(std::apply(std::declval<const Func &>(), args))) {
- return std::apply(static_cast<const Func &>(*this), std::forward<Type>(args));
- }
-};
-
-/**
- * @brief Deduction guide.
- * @tparam Func Type of underlying invocable object.
- */
-template<typename Func>
-forward_apply(Func) -> forward_apply<std::remove_reference_t<std::remove_cv_t<Func>>>;
-
-} // namespace entt
-
-#endif
|
