Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 10:28:00

0001 // Range v3 library
0002 //
0003 //  Copyright Eric Niebler 2014-present
0004 //
0005 //  Use, modification and distribution is subject to the
0006 //  Boost Software License, Version 1.0. (See accompanying
0007 //  file LICENSE_1_0.txt or copy at
0008 //  http://www.boost.org/LICENSE_1_0.txt)
0009 //
0010 // Project home: https://github.com/ericniebler/range-v3
0011 //
0012 
0013 #ifndef RANGES_V3_UTILITY_INFINITY_HPP
0014 #define RANGES_V3_UTILITY_INFINITY_HPP
0015 
0016 #include <concepts/concepts.hpp>
0017 
0018 #include <range/v3/range_fwd.hpp>
0019 RANGES_DEPRECATED_HEADER(
0020     "This header is deprecated and will be removed from a future version of range-v3.")
0021 
0022 #include <range/v3/detail/prologue.hpp>
0023 
0024 namespace ranges
0025 {
0026     /// \cond
0027     struct infinity
0028     {
0029         friend constexpr bool operator==(infinity, infinity)
0030         {
0031             return true;
0032         }
0033         friend constexpr bool operator!=(infinity, infinity)
0034         {
0035             return false;
0036         }
0037         template<typename Integer>
0038         friend constexpr auto operator==(Integer, infinity) noexcept
0039             -> CPP_broken_friend_ret(bool)(
0040                 requires integral<Integer>)
0041         {
0042             return false;
0043         }
0044         template<typename Integer>
0045         friend constexpr auto operator==(infinity, Integer) noexcept
0046             -> CPP_broken_friend_ret(bool)(
0047                 requires integral<Integer>)
0048         {
0049             return false;
0050         }
0051         template<typename Integer>
0052         friend constexpr auto operator!=(Integer, infinity) noexcept
0053             -> CPP_broken_friend_ret(bool)(
0054                 requires integral<Integer>)
0055         {
0056             return true;
0057         }
0058         template<typename Integer>
0059         friend constexpr auto operator!=(infinity, Integer) noexcept
0060             -> CPP_broken_friend_ret(bool)(
0061                 requires integral<Integer>)
0062         {
0063             return true;
0064         }
0065     };
0066     /// \endcond
0067 } // namespace ranges
0068 
0069 #include <range/v3/detail/epilogue.hpp>
0070 
0071 #endif