update boost
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines several `constexpr` algorithms.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -18,7 +18,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <utility>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
// Do not call this swap, otherwise it can get picked up by ADL and conflict
|
||||
// with std::swap (see https://github.com/boostorg/hana/issues/297).
|
||||
template <typename T>
|
||||
@@ -181,6 +181,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
smallest = first;
|
||||
return smallest;
|
||||
}
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_ALGORITHM_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::any_of`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -16,7 +16,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <utility>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
std::false_type expand(...);
|
||||
|
||||
template <template <typename ...> class Predicate, typename ...T>
|
||||
@@ -41,6 +41,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
struct any_of
|
||||
: decltype(any_of_impl<Predicate, T...>(int{}))
|
||||
{ };
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_ANY_OF_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::array`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -17,7 +17,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <cstddef>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
template <typename N>
|
||||
constexpr N factorial(N n) {
|
||||
N result = 1;
|
||||
@@ -100,6 +100,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
return M < N || detail::lexicographical_compare(a.begin(), a.end(), b.begin(), b.end());
|
||||
}
|
||||
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_ARRAY_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::CanonicalConstant`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -13,7 +13,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <boost/hana/config.hpp>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
//! @ingroup group-details
|
||||
//! Tag representing a canonical `Constant`.
|
||||
//!
|
||||
@@ -26,7 +26,7 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
struct CanonicalConstant {
|
||||
using value_type = T;
|
||||
};
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
|
||||
#include <boost/hana/concept/constant.hpp>
|
||||
@@ -37,7 +37,7 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
#include <type_traits>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN
|
||||
namespace boost { namespace hana {
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// Constant
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
@@ -75,6 +75,6 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
struct IntegralConstant<detail::CanonicalConstant<T>> {
|
||||
static constexpr bool value = std::is_integral<T>::value;
|
||||
};
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
}} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_CANONICAL_CONSTANT_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines concepts from the Standard library.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -17,7 +17,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <type_traits>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
//! @cond
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// EqualityComparable
|
||||
@@ -73,6 +73,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
>
|
||||
{ };
|
||||
//! @endcond
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_CONCEPTS_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::create`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -14,7 +14,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <boost/hana/detail/decay.hpp>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
//! @ingroup group-details
|
||||
//! Implementation of the generic `std::make_xxx` pattern for arbitrary
|
||||
//! `xxx`s.
|
||||
@@ -28,6 +28,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
};
|
||||
}
|
||||
};
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_CREATE_HPP
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
Defines a replacement for `std::decay`, which is sometimes too slow at
|
||||
compile-time.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -16,7 +16,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <type_traits>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
//! @ingroup group-details
|
||||
//! Equivalent to `std::decay`, except faster.
|
||||
//!
|
||||
@@ -43,6 +43,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
struct decay<T, R(A...)> { using type = R(*)(A...); };
|
||||
template <typename T, typename R, typename ...A>
|
||||
struct decay<T, R(A..., ...)> { using type = R(*)(A..., ...); };
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_DECAY_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `BOOST_HANA_DISPATCH_IF`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -15,7 +15,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <type_traits>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN
|
||||
namespace boost { namespace hana {
|
||||
struct deleted_implementation {
|
||||
template <typename ...T>
|
||||
static constexpr auto apply(T&& ...) = delete;
|
||||
@@ -51,6 +51,6 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
#else
|
||||
#define BOOST_HANA_DISPATCH_IF(IMPL, ...) IMPL
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
}} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_DISPATCH_IF_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::ebo`.
|
||||
|
||||
@copyright Louis Dionne 2013-2016
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -105,11 +105,11 @@ namespace _hana {
|
||||
{ return static_cast<V&&>(x.data_); }
|
||||
} // end namespace _hana
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN
|
||||
namespace boost { namespace hana {
|
||||
namespace detail {
|
||||
using ::_hana::ebo;
|
||||
using ::_hana::ebo_get;
|
||||
}
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
}} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_EBO_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::fast_and`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -15,11 +15,11 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <type_traits>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
template <bool ...b>
|
||||
struct fast_and
|
||||
: std::is_same<fast_and<b...>, fast_and<(b, true)...>>
|
||||
: std::is_same<fast_and<b...>, fast_and<((void) b, true)...>>
|
||||
{ };
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_FAST_AND_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::first_unsatisfied_index`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -17,7 +17,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <utility>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
template <bool, typename Pred, typename ...Xs>
|
||||
struct find_tail_size;
|
||||
|
||||
@@ -51,6 +51,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
>;
|
||||
}
|
||||
};
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_FIRST_UNSATISFIED_INDEX_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::has_[nontrivial_]common_embedding`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -18,7 +18,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <type_traits>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
template <template <typename...> class Concept, typename T, typename U, typename = void>
|
||||
struct has_common_embedding_impl : std::false_type { };
|
||||
|
||||
@@ -64,6 +64,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
template <template <typename...> class Concept, typename T, typename U>
|
||||
using has_nontrivial_common_embedding =
|
||||
typename has_nontrivial_common_embedding_impl<Concept, T, U>::type;
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_HAS_COMMON_EMBEDDING_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::has_duplicates`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -18,7 +18,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <utility>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
template <typename T, typename ...U>
|
||||
constexpr std::size_t pack_count() {
|
||||
std::size_t c = 0;
|
||||
@@ -60,6 +60,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
!detail::fast_and<(detail::pack_count<T, T...>() == 1)...>::value
|
||||
;
|
||||
};
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_HAS_DUPLICATES_HPP
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::hash_table`.
|
||||
|
||||
@copyright Louis Dionne 2016
|
||||
@copyright Jason Rice 2016
|
||||
Copyright Louis Dionne 2016
|
||||
Copyright Jason Rice 2016
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -27,7 +27,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <utility>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
template <typename Hash, std::size_t ...i>
|
||||
struct bucket { };
|
||||
|
||||
@@ -140,6 +140,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
bucket<typename decltype(hana::hash(std::declval<KeyAtIndex<i>>()))::type, i>...
|
||||
>;
|
||||
};
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_HASH_TABLE_HPP
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::index_if`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
@copyright Jason Rice 2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Copyright Jason Rice 2017
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -20,7 +20,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <utility>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
template <std::size_t i, std::size_t N, bool Done>
|
||||
struct index_if_helper;
|
||||
|
||||
@@ -50,6 +50,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
using type = typename index_if_helper<0, sizeof...(Xs), false>
|
||||
::template f<Pred, Xs...>;
|
||||
};
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_INDEX_IF_HPP
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
Defines the barebones `boost::hana::integral_constant` template, but no
|
||||
operations on it.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -17,7 +17,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <type_traits>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN
|
||||
namespace boost { namespace hana {
|
||||
//! Tag representing `hana::integral_constant`.
|
||||
//! @relates hana::integral_constant
|
||||
template <typename T>
|
||||
@@ -231,7 +231,11 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
};
|
||||
#else
|
||||
template <typename T, T v>
|
||||
#ifdef BOOST_HANA_WORKAROUND_MSVC_EMPTYBASE
|
||||
struct __declspec(empty_bases) integral_constant
|
||||
#else
|
||||
struct integral_constant
|
||||
#endif
|
||||
: std::integral_constant<T, v>
|
||||
, detail::operators::adl<integral_constant<T, v>>
|
||||
{
|
||||
@@ -240,6 +244,6 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
using hana_tag = integral_constant_tag<T>;
|
||||
};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
}} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_INTEGRAL_CONSTANT_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines macros for commonly used type traits.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::nested_by`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -17,7 +17,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <boost/hana/functional/partial.hpp>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
//! @cond
|
||||
template <typename Algorithm>
|
||||
template <typename Predicate, typename Object>
|
||||
@@ -35,6 +35,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
static_cast<Predicate&&>(predicate));
|
||||
}
|
||||
//! @endcond
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_NESTED_BY_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Forward declares `boost::hana::detail::nested_by`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -13,7 +13,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <boost/hana/config.hpp>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
template <typename Algorithm>
|
||||
struct nested_by_t {
|
||||
template <typename Predicate, typename Object>
|
||||
@@ -50,6 +50,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
|
||||
template <typename Algorithm>
|
||||
constexpr nested_by_t<Algorithm> nested_by<Algorithm>::by;
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_NESTED_BY_FWD_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::nested_than`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -17,13 +17,13 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <boost/hana/functional/partial.hpp>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
//! @cond
|
||||
template <typename Algorithm>
|
||||
template <typename X>
|
||||
constexpr decltype(auto) nested_than_t<Algorithm>::operator()(X&& x) const
|
||||
{ return hana::partial(hana::flip(Algorithm{}), static_cast<X&&>(x)); }
|
||||
//! @endcond
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_NESTED_THAN_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Forward declares `boost::hana::detail::nested_than`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -13,7 +13,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <boost/hana/config.hpp>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
template <typename Algorithm>
|
||||
struct nested_than_t {
|
||||
template <typename X>
|
||||
@@ -42,6 +42,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
|
||||
template <typename Algorithm>
|
||||
constexpr nested_than_t<Algorithm> nested_than<Algorithm>::than;
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_NESTED_THAN_FWD_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::nested_to`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -16,13 +16,13 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <boost/hana/functional/partial.hpp>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
//! @cond
|
||||
template <typename Algorithm>
|
||||
template <typename X>
|
||||
constexpr decltype(auto) nested_to_t<Algorithm>::operator()(X&& x) const
|
||||
{ return hana::partial(Algorithm{}, static_cast<X&&>(x)); }
|
||||
//! @endcond
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_NESTED_TO_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Forward declares `boost::hana::detail::nested_to`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -13,7 +13,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <boost/hana/config.hpp>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
template <typename Algorithm>
|
||||
struct nested_to_t {
|
||||
template <typename X>
|
||||
@@ -42,6 +42,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
|
||||
template <typename Algorithm>
|
||||
constexpr nested_to_t<Algorithm> nested_to<Algorithm>::to;
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_NESTED_TO_FWD_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::operators::adl`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -13,7 +13,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <boost/hana/config.hpp>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace operators {
|
||||
namespace boost { namespace hana { namespace detail { namespace operators {
|
||||
//! @ingroup group-details
|
||||
//! Enables [ADL](http://en.cppreference.com/w/cpp/language/adl) in the
|
||||
//! `hana::detail::operators` namespace.
|
||||
@@ -29,6 +29,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace operators {
|
||||
//! is not a concern, `adl<>` can simply be used.
|
||||
template <typename ...>
|
||||
struct adl { };
|
||||
}} BOOST_HANA_NAMESPACE_END
|
||||
}} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_OPERATORS_ADL_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines arithmetic operators.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -22,7 +22,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <type_traits>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
template <typename Tag>
|
||||
struct arithmetic_operators {
|
||||
static constexpr bool value = false;
|
||||
@@ -73,6 +73,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
constexpr auto operator%(X&& x, Y&& y)
|
||||
{ return hana::mod(static_cast<X&&>(x), static_cast<Y&&>(y)); }
|
||||
} // end namespace operators
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_OPERATORS_ARITHMETIC_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines operators for Comparables.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -18,7 +18,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <type_traits>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
template <typename Tag>
|
||||
struct comparable_operators {
|
||||
static constexpr bool value = false;
|
||||
@@ -26,19 +26,27 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
|
||||
namespace operators {
|
||||
template <typename X, typename Y, typename = typename std::enable_if<
|
||||
detail::comparable_operators<typename hana::tag_of<X>::type>::value ||
|
||||
detail::comparable_operators<typename hana::tag_of<Y>::type>::value
|
||||
!detail::has_idempotent_tag<X>::value &&
|
||||
!detail::has_idempotent_tag<Y>::value &&
|
||||
(detail::comparable_operators<
|
||||
typename hana::tag_of<X>::type>::value ||
|
||||
detail::comparable_operators<
|
||||
typename hana::tag_of<Y>::type>::value)
|
||||
>::type>
|
||||
constexpr auto operator==(X&& x, Y&& y)
|
||||
{ return hana::equal(static_cast<X&&>(x), static_cast<Y&&>(y)); }
|
||||
|
||||
template <typename X, typename Y, typename = typename std::enable_if<
|
||||
detail::comparable_operators<typename hana::tag_of<X>::type>::value ||
|
||||
detail::comparable_operators<typename hana::tag_of<Y>::type>::value
|
||||
!detail::has_idempotent_tag<X>::value &&
|
||||
!detail::has_idempotent_tag<Y>::value &&
|
||||
(detail::comparable_operators<
|
||||
typename hana::tag_of<X>::type>::value ||
|
||||
detail::comparable_operators<
|
||||
typename hana::tag_of<Y>::type>::value)
|
||||
>::type>
|
||||
constexpr auto operator!=(X&& x, Y&& y)
|
||||
{ return hana::not_equal(static_cast<X&&>(x), static_cast<Y&&>(y)); }
|
||||
} // end namespace operators
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_OPERATORS_COMPARABLE_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines operators for Iterables.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -14,7 +14,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <boost/hana/fwd/at.hpp>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
template <typename Derived>
|
||||
struct iterable_operators {
|
||||
template <typename N>
|
||||
@@ -35,6 +35,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
static_cast<N&&>(n));
|
||||
}
|
||||
};
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_OPERATORS_ITERABLE_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines logical operators.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -19,7 +19,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <type_traits>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
template <typename Tag>
|
||||
struct logical_operators {
|
||||
static constexpr bool value = false;
|
||||
@@ -46,6 +46,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
constexpr auto operator!(X&& x)
|
||||
{ return hana::not_(static_cast<X&&>(x)); }
|
||||
} // end namespace operators
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_OPERATORS_LOGICAL_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines operators for Monads.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -17,7 +17,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <type_traits>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
template <typename Tag>
|
||||
struct monad_operators {
|
||||
static constexpr bool value = false;
|
||||
@@ -30,6 +30,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
constexpr auto operator|(Xs&& xs, F&& f)
|
||||
{ return hana::chain(static_cast<Xs&&>(xs), static_cast<F&&>(f)); }
|
||||
} // end namespace operators
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_OPERATORS_MONAD_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines operators for Orderables.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -20,7 +20,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <type_traits>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
template <typename Tag>
|
||||
struct orderable_operators {
|
||||
static constexpr bool value = false;
|
||||
@@ -55,6 +55,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
constexpr auto operator>=(X&& x, Y&& y)
|
||||
{ return hana::greater_equal(static_cast<X&&>(x), static_cast<Y&&>(y)); }
|
||||
} // end namespace operators
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_OPERATORS_ORDERABLE_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines operators for Searchables.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -14,7 +14,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <boost/hana/fwd/at_key.hpp>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
template <typename Derived>
|
||||
struct searchable_operators {
|
||||
template <typename Key>
|
||||
@@ -35,6 +35,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
static_cast<Key&&>(key));
|
||||
}
|
||||
};
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_OPERATORS_SEARCHABLE_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines generally useful preprocessor macros.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -22,7 +22,12 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
|
||||
//! @ingroup group-details
|
||||
//! Expands to its first argument.
|
||||
#ifdef BOOST_HANA_WORKAROUND_MSVC_PREPROCESSOR_616033
|
||||
#define BOOST_HANA_PP_FRONT(...) BOOST_HANA_PP_FRONT_IMPL_I(__VA_ARGS__)
|
||||
#define BOOST_HANA_PP_FRONT_IMPL_I(...) BOOST_HANA_PP_CONCAT(BOOST_HANA_PP_FRONT_IMPL(__VA_ARGS__, ),)
|
||||
#else
|
||||
#define BOOST_HANA_PP_FRONT(...) BOOST_HANA_PP_FRONT_IMPL(__VA_ARGS__, )
|
||||
#endif
|
||||
#define BOOST_HANA_PP_FRONT_IMPL(e0, ...) e0
|
||||
|
||||
//! @ingroup group-details
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines a SFINAE-friendly version of `std::common_type`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -16,7 +16,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <utility>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
//! @ingroup group-details
|
||||
//! Equivalent to `std::common_type`, except it is SFINAE-friendly and
|
||||
//! does not support custom specializations.
|
||||
@@ -31,6 +31,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
decltype(true ? std::declval<T>() : std::declval<U>())
|
||||
>::type;
|
||||
};
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_STD_COMMON_TYPE_HPP
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::type_at`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -23,7 +23,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
# endif
|
||||
#endif
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
namespace td {
|
||||
template <std::size_t I, typename T>
|
||||
struct elt { using type = T; };
|
||||
@@ -52,6 +52,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
using type = typename decltype(td::get_elt<n>(Indexer{}))::type;
|
||||
#endif
|
||||
};
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_TYPE_AT_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::type_foldl1`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -13,7 +13,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <boost/hana/config.hpp>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
template <unsigned n>
|
||||
struct type_foldl1_t;
|
||||
|
||||
@@ -140,6 +140,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
using type = typename type_foldl1_t<(sizeof...(xn) > 6 ? 6 : sizeof...(xn))>
|
||||
::template result<f, x1, xn...>;
|
||||
};
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_TYPE_FOLDL1_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::type_foldr1`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -13,7 +13,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <boost/hana/config.hpp>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
template <unsigned n>
|
||||
struct type_foldr1_t;
|
||||
|
||||
@@ -144,6 +144,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
using type = typename type_foldr1_t<(sizeof...(xn) > 6 ? 6 : sizeof...(xn))>
|
||||
::template result<f, x1, xn...>;
|
||||
};
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_TYPE_FOLDR1_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::unpack_flatten`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -21,7 +21,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <utility>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
template <std::size_t ...Lengths>
|
||||
struct flatten_indices {
|
||||
// avoid empty arrays by appending 0 to `lengths`
|
||||
@@ -65,6 +65,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
return Indices::apply(static_cast<Xs&&>(xs), static_cast<F&&>(f),
|
||||
std::make_index_sequence<Indices::flat_length>{});
|
||||
}
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_UNPACK_FLATTEN_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::variadic::at`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -16,7 +16,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <utility>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
namespace boost { namespace hana { namespace detail { namespace variadic {
|
||||
template <std::size_t n, typename = std::make_index_sequence<n>>
|
||||
struct at_type;
|
||||
|
||||
@@ -34,7 +34,7 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
};
|
||||
|
||||
template <std::size_t n>
|
||||
constexpr at_type<n> at{};
|
||||
}} BOOST_HANA_NAMESPACE_END
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr at_type<n> at{};
|
||||
}} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_VARIADIC_AT_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::variadic::drop_into`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -16,7 +16,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <utility>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
namespace boost { namespace hana { namespace detail { namespace variadic {
|
||||
template <std::size_t n, typename F, typename = std::make_index_sequence<n>>
|
||||
struct dropper;
|
||||
|
||||
@@ -41,7 +41,7 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
};
|
||||
|
||||
template <std::size_t n>
|
||||
constexpr make_dropper<n> drop_into{};
|
||||
}} BOOST_HANA_NAMESPACE_END
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr make_dropper<n> drop_into{};
|
||||
}} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_VARIADIC_DROP_INTO_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::variadic::foldl1`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -14,7 +14,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <boost/hana/core/when.hpp>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
namespace boost { namespace hana { namespace detail { namespace variadic {
|
||||
//! @cond
|
||||
template <unsigned int n, typename = when<true>>
|
||||
struct foldl1_impl;
|
||||
@@ -207,8 +207,8 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
}
|
||||
};
|
||||
|
||||
constexpr foldl1_t foldl1{};
|
||||
constexpr auto foldl = foldl1;
|
||||
}} BOOST_HANA_NAMESPACE_END
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr foldl1_t foldl1{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr auto foldl = foldl1;
|
||||
}} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_VARIADIC_FOLDL1_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::variadic::foldr1`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -14,7 +14,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <boost/hana/core/when.hpp>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
namespace boost { namespace hana { namespace detail { namespace variadic {
|
||||
//! @cond
|
||||
template <unsigned int n, typename = when<true>>
|
||||
struct foldr1_impl;
|
||||
@@ -193,7 +193,7 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
}
|
||||
};
|
||||
|
||||
constexpr foldr1_t foldr1{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr foldr1_t foldr1{};
|
||||
|
||||
struct foldr_t {
|
||||
template <typename F, typename State, typename ...Xn>
|
||||
@@ -204,7 +204,7 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
}
|
||||
};
|
||||
|
||||
constexpr foldr_t foldr{};
|
||||
}} BOOST_HANA_NAMESPACE_END
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr foldr_t foldr{};
|
||||
}} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_VARIADIC_FOLDR1_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::variadic::reverse_apply`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -14,14 +14,14 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <boost/hana/detail/variadic/reverse_apply/unrolled.hpp>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
BOOST_HANA_CONSTEXPR_LAMBDA auto reverse_apply =
|
||||
namespace boost { namespace hana { namespace detail { namespace variadic {
|
||||
BOOST_HANA_INLINE_VARIABLE BOOST_HANA_CONSTEXPR_LAMBDA auto reverse_apply =
|
||||
[](auto&& f, auto&& ...x) -> decltype(auto) {
|
||||
return detail::variadic::reverse_apply_unrolled(
|
||||
static_cast<decltype(f)&&>(f),
|
||||
static_cast<decltype(x)&&>(x)...
|
||||
static_cast<decltype(f)>(f),
|
||||
static_cast<decltype(x)>(x)...
|
||||
);
|
||||
};
|
||||
}} BOOST_HANA_NAMESPACE_END
|
||||
}} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_VARIADIC_REVERSE_APPLY_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::variadic::reverse_apply_flat`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -16,7 +16,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <utility>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
namespace boost { namespace hana { namespace detail { namespace variadic {
|
||||
template <int ...i, typename F, typename ...X>
|
||||
constexpr decltype(auto)
|
||||
reverse_apply_flat_helper(std::integer_sequence<int, i...>, F&& f, X&& ...x)
|
||||
@@ -36,6 +36,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
static_cast<X&&>(x)...
|
||||
);
|
||||
}
|
||||
}} BOOST_HANA_NAMESPACE_END
|
||||
}} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_VARIADIC_REVERSE_APPLY_FLAT_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::variadic::reverse_apply_unrolled`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -14,7 +14,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <boost/hana/functional/reverse_partial.hpp>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
namespace boost { namespace hana { namespace detail { namespace variadic {
|
||||
struct reverse_apply_unrolled_impl {
|
||||
template <typename F>
|
||||
constexpr decltype(auto) operator()(F&& f) const {
|
||||
@@ -80,8 +80,7 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
}
|
||||
};
|
||||
|
||||
constexpr reverse_apply_unrolled_impl reverse_apply_unrolled{};
|
||||
|
||||
}} BOOST_HANA_NAMESPACE_END
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr reverse_apply_unrolled_impl reverse_apply_unrolled{};
|
||||
}} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_VARIADIC_REVERSE_APPLY_UNROLLED_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::variadic::split_at`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -17,7 +17,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <cstddef>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
namespace boost { namespace hana { namespace detail { namespace variadic {
|
||||
template <std::size_t n>
|
||||
struct split_at_t {
|
||||
template <typename F, typename X1, typename X2, typename X3, typename X4, typename X5, typename X6, typename X7, typename X8, typename ...Xs>
|
||||
@@ -147,7 +147,7 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
};
|
||||
|
||||
template <std::size_t n>
|
||||
constexpr _makesplit_at_t<n> split_at{};
|
||||
}} BOOST_HANA_NAMESPACE_END
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr _makesplit_at_t<n> split_at{};
|
||||
}} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_VARIADIC_SPLIT_AT_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::variadic::take`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -18,7 +18,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <cstddef>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
namespace boost { namespace hana { namespace detail { namespace variadic {
|
||||
struct take_impl2 {
|
||||
template <typename F, typename ...Xs>
|
||||
constexpr decltype(auto) operator()(F&& f, Xs&& ...xs) const {
|
||||
@@ -45,7 +45,7 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
};
|
||||
|
||||
template <std::size_t n>
|
||||
constexpr take_t<n> take{};
|
||||
}} BOOST_HANA_NAMESPACE_END
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr take_t<n> take{};
|
||||
}} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_VARIADIC_TAKE_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines an equivalent to the proposed `std::void_t`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -13,9 +13,9 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <boost/hana/config.hpp>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
template <typename ...>
|
||||
using void_t = void;
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_VOID_T_HPP
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@file
|
||||
Defines `boost::hana::detail::wrong`.
|
||||
|
||||
@copyright Louis Dionne 2013-2017
|
||||
Copyright Louis Dionne 2013-2022
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
@@ -15,7 +15,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
#include <type_traits>
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
namespace boost { namespace hana { namespace detail {
|
||||
//! @ingroup group-detail
|
||||
//! Equivalent to a type-dependent `std::false_type`.
|
||||
//!
|
||||
@@ -28,6 +28,6 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail {
|
||||
//! @include example/detail/wrong.cpp
|
||||
template <typename ...>
|
||||
struct wrong : std::false_type { };
|
||||
} BOOST_HANA_NAMESPACE_END
|
||||
} }} // end namespace boost::hana
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_WRONG_HPP
|
||||
|
||||
Reference in New Issue
Block a user