update boost

This commit is contained in:
2023-11-24 12:56:13 -06:00
parent cfc99971af
commit 19d727037a
9260 changed files with 849256 additions and 299957 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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)
*/

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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