123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- #ifndef BOOST_HANA_FWD_PAIR_HPP
- #define BOOST_HANA_FWD_PAIR_HPP
- #include <boost/hana/config.hpp>
- #include <boost/hana/fwd/core/make.hpp>
- BOOST_HANA_NAMESPACE_BEGIN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #ifdef BOOST_HANA_DOXYGEN_INVOKED
- template <typename First, typename Second>
- struct pair {
-
-
- constexpr pair();
-
-
- constexpr pair(First const& first, Second const& second);
-
-
-
- template <typename T, typename U>
- constexpr pair(T&& t, U&& u);
-
-
-
- template <typename T, typename U>
- constexpr pair(pair<T, U> const& other);
-
-
-
- template <typename T, typename U>
- constexpr pair(pair<T, U>&& other);
-
-
-
- template <typename T, typename U>
- constexpr pair& operator=(pair<T, U> const& other);
-
-
-
- template <typename T, typename U>
- constexpr pair& operator=(pair<T, U>&& other);
-
- template <typename X, typename Y>
- friend constexpr auto operator==(X&& x, Y&& y);
-
- template <typename X, typename Y>
- friend constexpr auto operator!=(X&& x, Y&& y);
-
- template <typename X, typename Y>
- friend constexpr auto operator<(X&& x, Y&& y);
-
- template <typename X, typename Y>
- friend constexpr auto operator>(X&& x, Y&& y);
-
- template <typename X, typename Y>
- friend constexpr auto operator<=(X&& x, Y&& y);
-
- template <typename X, typename Y>
- friend constexpr auto operator>=(X&& x, Y&& y);
- };
- #else
- template <typename First, typename Second>
- struct pair;
- #endif
-
-
- struct pair_tag { };
- #ifdef BOOST_HANA_DOXYGEN_INVOKED
-
-
-
-
-
-
-
- template <>
- constexpr auto make<pair_tag> = [](auto&& first, auto&& second)
- -> hana::pair<std::decay_t<decltype(first)>, std::decay_t<decltype(second)>>
- {
- return {forwarded(first), forwarded(second)};
- };
- #endif
-
-
-
-
-
-
- constexpr auto make_pair = make<pair_tag>;
- BOOST_HANA_NAMESPACE_END
- #endif
|