// Boost.Geometry // Copyright (c) 2017, Oracle and/or its affiliates. // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle // Use, modification and distribution is subject to the Boost Software License, // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) #ifndef BOOST_GEOMETRY_SRS_PROJECTIONS_PROJ4_HPP #define BOOST_GEOMETRY_SRS_PROJECTIONS_PROJ4_HPP #include #include namespace boost { namespace geometry { namespace srs { struct dynamic {}; struct proj4 { explicit proj4(const char* s) : str(s) {} explicit proj4(std::string const& s) : str(s) {} std::string str; }; template < // null_type -> void? typename P0 = boost::tuples::null_type, typename P1 = boost::tuples::null_type, typename P2 = boost::tuples::null_type, typename P3 = boost::tuples::null_type, typename P4 = boost::tuples::null_type, typename P5 = boost::tuples::null_type, typename P6 = boost::tuples::null_type, typename P7 = boost::tuples::null_type, typename P8 = boost::tuples::null_type, typename P9 = boost::tuples::null_type > struct static_proj4 : boost::tuple { typedef boost::tuple base_type; static_proj4() {} explicit static_proj4(P0 const& p0) : base_type(p0) {} static_proj4(P0 const& p0, P1 const& p1) : base_type(p0, p1) {} static_proj4(P0 const& p0, P1 const& p1, P2 const& p2) : base_type(p0, p1, p2) {} static_proj4(P0 const& p0, P1 const& p1, P2 const& p2, P3 const& p3) : base_type(p0, p1, p2, p3) {} static_proj4(P0 const& p0, P1 const& p1, P2 const& p2, P3 const& p3, P4 const& p4) : base_type(p0, p1, p2, p3, p4) {} static_proj4(P0 const& p0, P1 const& p1, P2 const& p2, P3 const& p3, P4 const& p4, P5 const& p5) : base_type(p0, p1, p2, p3, p4, p5) {} static_proj4(P0 const& p0, P1 const& p1, P2 const& p2, P3 const& p3, P4 const& p4, P5 const& p5, P6 const& p6) : base_type(p0, p1, p2, p3, p4, p5, p6) {} static_proj4(P0 const& p0, P1 const& p1, P2 const& p2, P3 const& p3, P4 const& p4, P5 const& p5, P6 const& p6, P7 const& p7) : base_type(p0, p1, p2, p3, p4, p5, p6, p7) {} static_proj4(P0 const& p0, P1 const& p1, P2 const& p2, P3 const& p3, P4 const& p4, P5 const& p5, P6 const& p6, P7 const& p7, P8 const& p8) : base_type(p0, p1, p2, p3, p4, p5, p6, p7, p8) {} static_proj4(P0 const& p0, P1 const& p1, P2 const& p2, P3 const& p3, P4 const& p4, P5 const& p5, P6 const& p6, P7 const& p7, P8 const& p8, P9 const& p9) : base_type(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) {} }; #define BOOST_GEOMETRY_PROJECTIONS_DETAIL_TYPENAME_PX \ typename P0, typename P1, typename P2, typename P3, typename P4, \ typename P5, typename P6, typename P7, typename P8, typename P9 #define BOOST_GEOMETRY_PROJECTIONS_DETAIL_PX \ P0, P1, P2, P3, P4, P5, P6, P7, P8, P9 }}} // namespace boost::geometry::srs #ifndef DOXYGEN_NO_DETAIL namespace boost { namespace geometry { namespace projections { namespace detail { template struct function_argument_type; template struct function_argument_type { typedef A type; }; }}}} // namespace boost::geometry::projections::detail #endif // DOXYGEN_NO_DETAIL #endif // BOOST_GEOMETRY_SRS_PROJECTIONS_PROJ4_HPP