Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:35:23

0001 // Boost.Geometry (aka GGL, Generic Geometry Library)
0002 
0003 // Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
0004 // Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
0005 // Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
0006 
0007 // This file was modified by Oracle on 2020.
0008 // Modifications copyright (c) 2020, Oracle and/or its affiliates.
0009 // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
0010 
0011 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
0012 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
0013 
0014 // Use, modification and distribution is subject to the Boost Software License,
0015 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
0016 // http://www.boost.org/LICENSE_1_0.txt)
0017 
0018 
0019 #ifndef BOOST_GEOMETRY_CORE_REVERSE_DISPATCH_HPP
0020 #define BOOST_GEOMETRY_CORE_REVERSE_DISPATCH_HPP
0021 
0022 
0023 #include <cstddef>
0024 #include <type_traits>
0025 
0026 #include <boost/geometry/core/geometry_id.hpp>
0027 
0028 
0029 namespace boost { namespace geometry
0030 {
0031 
0032 
0033 #ifndef DOXYGEN_NO_DETAIL
0034 namespace detail
0035 {
0036 
0037 // Different geometries: reverse_dispatch if second ID < first ID
0038 template <std::size_t GeometryId1, std::size_t GeometryId2>
0039 struct reverse_dispatch
0040     : std::integral_constant
0041         <
0042             bool,
0043             (GeometryId1 > GeometryId2)
0044         >
0045 {};
0046 
0047 
0048 // Same geometry: never reverse_dispatch
0049 template <std::size_t GeometryId>
0050 struct reverse_dispatch<GeometryId, GeometryId> : std::false_type {};
0051 
0052 
0053 } // namespace detail
0054 #endif // DOXYGEN_NO_DETAIL
0055 
0056 
0057 template <typename Geometry1, typename Geometry2>
0058 struct reverse_dispatch : detail::reverse_dispatch
0059     <
0060         geometry_id<Geometry1>::type::value,
0061         geometry_id<Geometry2>::type::value
0062     >
0063 {};
0064 
0065 
0066 }} // namespace boost::geometry
0067 
0068 #endif // BOOST_GEOMETRY_CORE_REVERSE_DISPATCH_HPP