Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-15 10:26:39

0001 // Range v3 library
0002 //
0003 //  Copyright Eric Niebler 2013-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_DETAIL_PROLOGUE_HPP
0014 #define RANGES_V3_DETAIL_PROLOGUE_HPP
0015 #include <range/v3/detail/config.hpp>
0016 #endif
0017 
0018 #ifdef RANGES_PROLOGUE_INCLUDED
0019 #error "Prologue already included!"
0020 #endif
0021 #define RANGES_PROLOGUE_INCLUDED
0022 
0023 RANGES_DIAGNOSTIC_PUSH
0024 
0025 #ifdef RANGES_FEWER_WARNINGS
0026 RANGES_DIAGNOSTIC_IGNORE_UNDEFINED_INTERNAL
0027 RANGES_DIAGNOSTIC_IGNORE_INDENTATION
0028 RANGES_DIAGNOSTIC_IGNORE_CXX17_COMPAT
0029 #endif
0030 
0031 RANGES_DIAGNOSTIC_KEYWORD_MACRO
0032 
0033 #define template(...)                                                           \
0034     CPP_PP_IGNORE_CXX2A_COMPAT_BEGIN                                            \
0035     template<__VA_ARGS__ CPP_TEMPLATE_AUX_                                      \
0036 
0037 #define AND CPP_and
0038 
0039 /// \cond
0040 #if defined(__cpp_noexcept_function_type) && __cpp_noexcept_function_type >= 201510
0041 // noexcept is part of the type system
0042 #define declval(...) static_cast<__VA_ARGS__(*)() noexcept>(nullptr)()
0043 #else
0044 // noexcept is not part of the type system
0045 #define declval(...) static_cast<__VA_ARGS__(*)()>(nullptr)()
0046 #endif
0047 /// \cond