Coverage Report

Created: 2024-02-25 06:14

/src/PROJ/include/proj/util.hpp
Line
Count
Source (jump to first uncovered line)
1
/******************************************************************************
2
 *
3
 * Project:  PROJ
4
 * Purpose:  ISO19111:2019 implementation
5
 * Author:   Even Rouault <even dot rouault at spatialys dot com>
6
 *
7
 ******************************************************************************
8
 * Copyright (c) 2018, Even Rouault <even dot rouault at spatialys dot com>
9
 *
10
 * Permission is hereby granted, free of charge, to any person obtaining a
11
 * copy of this software and associated documentation files (the "Software"),
12
 * to deal in the Software without restriction, including without limitation
13
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
14
 * and/or sell copies of the Software, and to permit persons to whom the
15
 * Software is furnished to do so, subject to the following conditions:
16
 *
17
 * The above copyright notice and this permission notice shall be included
18
 * in all copies or substantial portions of the Software.
19
 *
20
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
21
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
23
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
25
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
26
 * DEALINGS IN THE SOFTWARE.
27
 ****************************************************************************/
28
29
#ifndef UTIL_HH_INCLUDED
30
#define UTIL_HH_INCLUDED
31
32
#if !(__cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1900))
33
#error Must have C++11 or newer.
34
#endif
35
36
// windows.h can conflict with Criterion::STRICT
37
#ifdef STRICT
38
#undef STRICT
39
#endif
40
41
#include <exception>
42
#include <map>
43
#include <memory>
44
#include <string>
45
#include <type_traits>
46
#include <vector>
47
48
#ifndef NS_PROJ
49
/** osgeo namespace */
50
namespace osgeo {
51
/** osgeo.proj namespace */
52
namespace proj {}
53
} // namespace osgeo
54
#endif
55
56
//! @cond Doxygen_Suppress
57
58
#ifndef PROJ_DLL
59
#if defined(_MSC_VER)
60
#ifdef PROJ_MSVC_DLL_EXPORT
61
#define PROJ_DLL __declspec(dllexport)
62
#else
63
#define PROJ_DLL __declspec(dllimport)
64
#endif
65
#elif defined(__GNUC__)
66
#define PROJ_DLL __attribute__((visibility("default")))
67
#else
68
#define PROJ_DLL
69
#endif
70
#endif
71
72
#ifndef PROJ_MSVC_DLL
73
#if defined(_MSC_VER)
74
#define PROJ_MSVC_DLL PROJ_DLL
75
#define PROJ_GCC_DLL
76
#define PROJ_INTERNAL
77
#elif defined(__GNUC__)
78
#define PROJ_MSVC_DLL
79
#define PROJ_GCC_DLL PROJ_DLL
80
#if !defined(__MINGW32__)
81
#define PROJ_INTERNAL __attribute__((visibility("hidden")))
82
#else
83
#define PROJ_INTERNAL
84
#endif
85
#else
86
#define PROJ_MSVC_DLL
87
#define PROJ_GCC_DLL
88
#define PROJ_INTERNAL
89
#endif
90
#define PROJ_FOR_TEST PROJ_DLL
91
#endif
92
93
#include "nn.hpp"
94
95
/* To allow customizing the base namespace of PROJ */
96
#ifdef PROJ_INTERNAL_CPP_NAMESPACE
97
#define NS_PROJ osgeo::internalproj
98
#define NS_PROJ_START                                                          \
99
    namespace osgeo {                                                          \
100
    namespace internalproj {
101
#define NS_PROJ_END                                                            \
102
    }                                                                          \
103
    }
104
#else
105
#ifndef NS_PROJ
106
1.09M
#define NS_PROJ osgeo::proj
107
#define NS_PROJ_START                                                          \
108
    namespace osgeo {                                                          \
109
    namespace proj {
110
#define NS_PROJ_END                                                            \
111
    }                                                                          \
112
    }
113
#endif
114
#endif
115
116
// Private-implementation (Pimpl) pattern
117
#define PROJ_OPAQUE_PRIVATE_DATA                                               \
118
  private:                                                                     \
119
    struct PROJ_INTERNAL Private;                                              \
120
    std::unique_ptr<Private> d;                                                \
121
                                                                               \
122
  protected:                                                                   \
123
2.98M
    PROJ_INTERNAL Private *getPrivate() noexcept { return d.get(); }           \
Unexecuted instantiation: osgeo::proj::util::BaseObject::getPrivate()
Unexecuted instantiation: osgeo::proj::util::BoxedValue::getPrivate()
Unexecuted instantiation: osgeo::proj::util::ArrayOfBaseObject::getPrivate()
Unexecuted instantiation: osgeo::proj::util::PropertyMap::getPrivate()
Unexecuted instantiation: osgeo::proj::util::GenericName::getPrivate()
Unexecuted instantiation: osgeo::proj::util::NameSpace::getPrivate()
Unexecuted instantiation: osgeo::proj::util::LocalName::getPrivate()
Unexecuted instantiation: osgeo::proj::io::WKTFormatter::getPrivate()
Unexecuted instantiation: osgeo::proj::io::PROJStringFormatter::getPrivate()
Unexecuted instantiation: osgeo::proj::io::JSONFormatter::getPrivate()
osgeo::proj::io::WKTNode::getPrivate()
Line
Count
Source
123
2.83M
    PROJ_INTERNAL Private *getPrivate() noexcept { return d.get(); }           \
Unexecuted instantiation: osgeo::proj::io::WKTParser::getPrivate()
Unexecuted instantiation: osgeo::proj::io::PROJStringParser::getPrivate()
osgeo::proj::io::DatabaseContext::getPrivate()
Line
Count
Source
123
70.6k
    PROJ_INTERNAL Private *getPrivate() noexcept { return d.get(); }           \
Unexecuted instantiation: osgeo::proj::io::AuthorityFactory::getPrivate()
Unexecuted instantiation: osgeo::proj::io::NoSuchAuthorityCodeException::getPrivate()
Unexecuted instantiation: osgeo::proj::metadata::Citation::getPrivate()
Unexecuted instantiation: osgeo::proj::metadata::GeographicExtent::getPrivate()
Unexecuted instantiation: osgeo::proj::metadata::GeographicBoundingBox::getPrivate()
Unexecuted instantiation: osgeo::proj::metadata::TemporalExtent::getPrivate()
Unexecuted instantiation: osgeo::proj::metadata::VerticalExtent::getPrivate()
Unexecuted instantiation: osgeo::proj::metadata::Extent::getPrivate()
Unexecuted instantiation: osgeo::proj::metadata::Identifier::getPrivate()
Unexecuted instantiation: osgeo::proj::metadata::PositionalAccuracy::getPrivate()
Unexecuted instantiation: osgeo::proj::common::UnitOfMeasure::getPrivate()
Unexecuted instantiation: osgeo::proj::common::Measure::getPrivate()
Unexecuted instantiation: osgeo::proj::common::DateTime::getPrivate()
Unexecuted instantiation: osgeo::proj::common::DataEpoch::getPrivate()
Unexecuted instantiation: osgeo::proj::common::IdentifiedObject::getPrivate()
Unexecuted instantiation: osgeo::proj::common::ObjectDomain::getPrivate()
Unexecuted instantiation: osgeo::proj::common::ObjectUsage::getPrivate()
Unexecuted instantiation: osgeo::proj::operation::CoordinateTransformer::getPrivate()
Unexecuted instantiation: osgeo::proj::operation::CoordinateOperation::getPrivate()
Unexecuted instantiation: osgeo::proj::operation::GeneralOperationParameter::getPrivate()
Unexecuted instantiation: osgeo::proj::operation::OperationParameter::getPrivate()
Unexecuted instantiation: osgeo::proj::operation::GeneralParameterValue::getPrivate()
Unexecuted instantiation: osgeo::proj::operation::ParameterValue::getPrivate()
Unexecuted instantiation: osgeo::proj::operation::OperationParameterValue::getPrivate()
osgeo::proj::operation::OperationMethod::getPrivate()
Line
Count
Source
123
522
    PROJ_INTERNAL Private *getPrivate() noexcept { return d.get(); }           \
Unexecuted instantiation: osgeo::proj::operation::SingleOperation::getPrivate()
Unexecuted instantiation: osgeo::proj::operation::Conversion::getPrivate()
Unexecuted instantiation: osgeo::proj::operation::Transformation::getPrivate()
Unexecuted instantiation: osgeo::proj::operation::ConcatenatedOperation::getPrivate()
Unexecuted instantiation: osgeo::proj::operation::CoordinateOperationContext::getPrivate()
Unexecuted instantiation: osgeo::proj::operation::CoordinateOperationFactory::getPrivate()
Unexecuted instantiation: osgeo::proj::cs::Meridian::getPrivate()
Unexecuted instantiation: osgeo::proj::cs::CoordinateSystemAxis::getPrivate()
Unexecuted instantiation: osgeo::proj::cs::CoordinateSystem::getPrivate()
Unexecuted instantiation: osgeo::proj::datum::Datum::getPrivate()
Unexecuted instantiation: osgeo::proj::datum::DatumEnsemble::getPrivate()
Unexecuted instantiation: osgeo::proj::datum::PrimeMeridian::getPrivate()
Unexecuted instantiation: osgeo::proj::datum::Ellipsoid::getPrivate()
Unexecuted instantiation: osgeo::proj::datum::GeodeticReferenceFrame::getPrivate()
Unexecuted instantiation: osgeo::proj::datum::DynamicGeodeticReferenceFrame::getPrivate()
Unexecuted instantiation: osgeo::proj::datum::VerticalReferenceFrame::getPrivate()
Unexecuted instantiation: osgeo::proj::datum::DynamicVerticalReferenceFrame::getPrivate()
Unexecuted instantiation: osgeo::proj::datum::TemporalDatum::getPrivate()
Unexecuted instantiation: osgeo::proj::datum::EngineeringDatum::getPrivate()
Unexecuted instantiation: osgeo::proj::datum::ParametricDatum::getPrivate()
osgeo::proj::crs::CRS::getPrivate()
Line
Count
Source
123
82.8k
    PROJ_INTERNAL Private *getPrivate() noexcept { return d.get(); }           \
Unexecuted instantiation: osgeo::proj::crs::SingleCRS::getPrivate()
Unexecuted instantiation: osgeo::proj::crs::GeodeticCRS::getPrivate()
Unexecuted instantiation: osgeo::proj::crs::GeographicCRS::getPrivate()
Unexecuted instantiation: osgeo::proj::crs::VerticalCRS::getPrivate()
Unexecuted instantiation: osgeo::proj::crs::DerivedCRS::getPrivate()
Unexecuted instantiation: osgeo::proj::crs::ProjectedCRS::getPrivate()
Unexecuted instantiation: osgeo::proj::crs::TemporalCRS::getPrivate()
Unexecuted instantiation: osgeo::proj::crs::EngineeringCRS::getPrivate()
Unexecuted instantiation: osgeo::proj::crs::ParametricCRS::getPrivate()
Unexecuted instantiation: osgeo::proj::crs::CompoundCRS::getPrivate()
Unexecuted instantiation: osgeo::proj::crs::BoundCRS::getPrivate()
Unexecuted instantiation: osgeo::proj::crs::DerivedGeodeticCRS::getPrivate()
Unexecuted instantiation: osgeo::proj::crs::DerivedGeographicCRS::getPrivate()
Unexecuted instantiation: osgeo::proj::crs::DerivedProjectedCRS::getPrivate()
Unexecuted instantiation: osgeo::proj::crs::DerivedVerticalCRS::getPrivate()
Unexecuted instantiation: osgeo::proj::coordinates::CoordinateMetadata::getPrivate()
124
101k
    PROJ_INTERNAL const Private *getPrivate() const noexcept {                 \
125
101k
        return d.get();                                                        \
126
101k
    }                                                                          \
Unexecuted instantiation: osgeo::proj::util::BaseObject::getPrivate() const
Unexecuted instantiation: osgeo::proj::util::BoxedValue::getPrivate() const
Unexecuted instantiation: osgeo::proj::util::ArrayOfBaseObject::getPrivate() const
Unexecuted instantiation: osgeo::proj::util::PropertyMap::getPrivate() const
Unexecuted instantiation: osgeo::proj::util::GenericName::getPrivate() const
Unexecuted instantiation: osgeo::proj::util::NameSpace::getPrivate() const
Unexecuted instantiation: osgeo::proj::util::LocalName::getPrivate() const
Unexecuted instantiation: osgeo::proj::io::WKTFormatter::getPrivate() const
Unexecuted instantiation: osgeo::proj::io::PROJStringFormatter::getPrivate() const
Unexecuted instantiation: osgeo::proj::io::JSONFormatter::getPrivate() const
Unexecuted instantiation: osgeo::proj::io::WKTNode::getPrivate() const
Unexecuted instantiation: osgeo::proj::io::WKTParser::getPrivate() const
Unexecuted instantiation: osgeo::proj::io::PROJStringParser::getPrivate() const
Unexecuted instantiation: osgeo::proj::io::DatabaseContext::getPrivate() const
Unexecuted instantiation: osgeo::proj::io::AuthorityFactory::getPrivate() const
Unexecuted instantiation: osgeo::proj::io::NoSuchAuthorityCodeException::getPrivate() const
Unexecuted instantiation: osgeo::proj::metadata::Citation::getPrivate() const
Unexecuted instantiation: osgeo::proj::metadata::GeographicExtent::getPrivate() const
Unexecuted instantiation: osgeo::proj::metadata::GeographicBoundingBox::getPrivate() const
Unexecuted instantiation: osgeo::proj::metadata::TemporalExtent::getPrivate() const
Unexecuted instantiation: osgeo::proj::metadata::VerticalExtent::getPrivate() const
Unexecuted instantiation: osgeo::proj::metadata::Extent::getPrivate() const
Unexecuted instantiation: osgeo::proj::metadata::Identifier::getPrivate() const
Unexecuted instantiation: osgeo::proj::metadata::PositionalAccuracy::getPrivate() const
Unexecuted instantiation: osgeo::proj::common::UnitOfMeasure::getPrivate() const
Unexecuted instantiation: osgeo::proj::common::Measure::getPrivate() const
Unexecuted instantiation: osgeo::proj::common::DateTime::getPrivate() const
Unexecuted instantiation: osgeo::proj::common::DataEpoch::getPrivate() const
Unexecuted instantiation: osgeo::proj::common::IdentifiedObject::getPrivate() const
Unexecuted instantiation: osgeo::proj::common::ObjectDomain::getPrivate() const
Unexecuted instantiation: osgeo::proj::common::ObjectUsage::getPrivate() const
Unexecuted instantiation: osgeo::proj::operation::CoordinateTransformer::getPrivate() const
osgeo::proj::operation::CoordinateOperation::getPrivate() const
Line
Count
Source
124
34.4k
    PROJ_INTERNAL const Private *getPrivate() const noexcept {                 \
125
34.4k
        return d.get();                                                        \
126
34.4k
    }                                                                          \
Unexecuted instantiation: osgeo::proj::operation::GeneralOperationParameter::getPrivate() const
Unexecuted instantiation: osgeo::proj::operation::OperationParameter::getPrivate() const
Unexecuted instantiation: osgeo::proj::operation::GeneralParameterValue::getPrivate() const
Unexecuted instantiation: osgeo::proj::operation::ParameterValue::getPrivate() const
Unexecuted instantiation: osgeo::proj::operation::OperationParameterValue::getPrivate() const
Unexecuted instantiation: osgeo::proj::operation::OperationMethod::getPrivate() const
Unexecuted instantiation: osgeo::proj::operation::SingleOperation::getPrivate() const
Unexecuted instantiation: osgeo::proj::operation::Conversion::getPrivate() const
Unexecuted instantiation: osgeo::proj::operation::Transformation::getPrivate() const
Unexecuted instantiation: osgeo::proj::operation::ConcatenatedOperation::getPrivate() const
Unexecuted instantiation: osgeo::proj::operation::CoordinateOperationContext::getPrivate() const
Unexecuted instantiation: osgeo::proj::operation::CoordinateOperationFactory::getPrivate() const
Unexecuted instantiation: osgeo::proj::cs::Meridian::getPrivate() const
Unexecuted instantiation: osgeo::proj::cs::CoordinateSystemAxis::getPrivate() const
osgeo::proj::cs::CoordinateSystem::getPrivate() const
Line
Count
Source
124
12.7k
    PROJ_INTERNAL const Private *getPrivate() const noexcept {                 \
125
12.7k
        return d.get();                                                        \
126
12.7k
    }                                                                          \
Unexecuted instantiation: osgeo::proj::datum::Datum::getPrivate() const
Unexecuted instantiation: osgeo::proj::datum::DatumEnsemble::getPrivate() const
Unexecuted instantiation: osgeo::proj::datum::PrimeMeridian::getPrivate() const
Unexecuted instantiation: osgeo::proj::datum::Ellipsoid::getPrivate() const
Unexecuted instantiation: osgeo::proj::datum::GeodeticReferenceFrame::getPrivate() const
Unexecuted instantiation: osgeo::proj::datum::DynamicGeodeticReferenceFrame::getPrivate() const
Unexecuted instantiation: osgeo::proj::datum::VerticalReferenceFrame::getPrivate() const
Unexecuted instantiation: osgeo::proj::datum::DynamicVerticalReferenceFrame::getPrivate() const
Unexecuted instantiation: osgeo::proj::datum::TemporalDatum::getPrivate() const
Unexecuted instantiation: osgeo::proj::datum::EngineeringDatum::getPrivate() const
Unexecuted instantiation: osgeo::proj::datum::ParametricDatum::getPrivate() const
osgeo::proj::crs::CRS::getPrivate() const
Line
Count
Source
124
42.2k
    PROJ_INTERNAL const Private *getPrivate() const noexcept {                 \
125
42.2k
        return d.get();                                                        \
126
42.2k
    }                                                                          \
osgeo::proj::crs::SingleCRS::getPrivate() const
Line
Count
Source
124
9.58k
    PROJ_INTERNAL const Private *getPrivate() const noexcept {                 \
125
9.58k
        return d.get();                                                        \
126
9.58k
    }                                                                          \
Unexecuted instantiation: osgeo::proj::crs::GeodeticCRS::getPrivate() const
Unexecuted instantiation: osgeo::proj::crs::GeographicCRS::getPrivate() const
Unexecuted instantiation: osgeo::proj::crs::VerticalCRS::getPrivate() const
osgeo::proj::crs::DerivedCRS::getPrivate() const
Line
Count
Source
124
2.87k
    PROJ_INTERNAL const Private *getPrivate() const noexcept {                 \
125
2.87k
        return d.get();                                                        \
126
2.87k
    }                                                                          \
Unexecuted instantiation: osgeo::proj::crs::ProjectedCRS::getPrivate() const
Unexecuted instantiation: osgeo::proj::crs::TemporalCRS::getPrivate() const
Unexecuted instantiation: osgeo::proj::crs::EngineeringCRS::getPrivate() const
Unexecuted instantiation: osgeo::proj::crs::ParametricCRS::getPrivate() const
Unexecuted instantiation: osgeo::proj::crs::CompoundCRS::getPrivate() const
Unexecuted instantiation: osgeo::proj::crs::BoundCRS::getPrivate() const
Unexecuted instantiation: osgeo::proj::crs::DerivedGeodeticCRS::getPrivate() const
Unexecuted instantiation: osgeo::proj::crs::DerivedGeographicCRS::getPrivate() const
Unexecuted instantiation: osgeo::proj::crs::DerivedProjectedCRS::getPrivate() const
Unexecuted instantiation: osgeo::proj::crs::DerivedVerticalCRS::getPrivate() const
Unexecuted instantiation: osgeo::proj::coordinates::CoordinateMetadata::getPrivate() const
127
                                                                               \
128
  private:
129
130
// To include in the protected/private section of a class definition,
131
// to be able to call make_shared on a protected/private constructor
132
#define INLINED_MAKE_SHARED                                                    \
133
    template <typename T, typename... Args>                                    \
134
2
    static std::shared_ptr<T> make_shared(Args &&...args) {                    \
135
2
        return std::shared_ptr<T>(new T(std::forward<Args>(args)...));         \
136
2
    }                                                                          \
137
    template <typename T, typename... Args>                                    \
138
3.66M
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
3.66M
        return util::nn_shared_ptr<T>(                                         \
140
3.66M
            util::i_promise_i_checked_for_null,                                \
141
3.66M
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
3.66M
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::util::ArrayOfBaseObject> > osgeo::proj::util::ArrayOfBaseObject::nn_make_shared<osgeo::proj::util::ArrayOfBaseObject>()
Line
Count
Source
138
171k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
171k
        return util::nn_shared_ptr<T>(                                         \
140
171k
            util::i_promise_i_checked_for_null,                                \
141
171k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
171k
    }
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::util::NameSpace> > osgeo::proj::util::NameSpace::nn_make_shared<osgeo::proj::util::NameSpace, osgeo::proj::util::NameSpace const&>(osgeo::proj::util::NameSpace const&)
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::util::NameSpace> > osgeo::proj::util::NameSpace::nn_make_shared<osgeo::proj::util::NameSpace, std::__1::shared_ptr<osgeo::proj::util::LocalName> >(std::__1::shared_ptr<osgeo::proj::util::LocalName>&&)
Line
Count
Source
138
2
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
2
        return util::nn_shared_ptr<T>(                                         \
140
2
            util::i_promise_i_checked_for_null,                                \
141
2
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
2
    }
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::util::LocalName> > osgeo::proj::util::LocalName::nn_make_shared<osgeo::proj::util::LocalName, osgeo::proj::util::LocalName const&>(osgeo::proj::util::LocalName const&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::util::LocalName> > osgeo::proj::util::LocalName::nn_make_shared<osgeo::proj::util::LocalName, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::util::NameSpace> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::util::NameSpace> >&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::util::NameSpace> > osgeo::proj::util::NameSpace::nn_make_shared<osgeo::proj::util::NameSpace, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::util::GenericName> > const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::util::GenericName> > const&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::util::LocalName> > osgeo::proj::util::LocalName::nn_make_shared<osgeo::proj::util::LocalName, std::__1::shared_ptr<osgeo::proj::util::NameSpace> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&>(std::__1::shared_ptr<osgeo::proj::util::NameSpace> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::util::LocalName> > osgeo::proj::util::LocalName::nn_make_shared<osgeo::proj::util::LocalName, std::__1::shared_ptr<osgeo::proj::util::NameSpace> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&>(std::__1::shared_ptr<osgeo::proj::util::NameSpace> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::metadata::GeographicBoundingBox> > osgeo::proj::metadata::GeographicBoundingBox::nn_make_shared<osgeo::proj::metadata::GeographicBoundingBox, double&, double&, double&, double&>(double&, double&, double&, double&)
Line
Count
Source
138
1.45k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
1.45k
        return util::nn_shared_ptr<T>(                                         \
140
1.45k
            util::i_promise_i_checked_for_null,                                \
141
1.45k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
1.45k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::metadata::VerticalExtent> > osgeo::proj::metadata::VerticalExtent::nn_make_shared<osgeo::proj::metadata::VerticalExtent, double&, double&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::common::UnitOfMeasure> > const&>(double&, double&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::common::UnitOfMeasure> > const&)
Line
Count
Source
138
91
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
91
        return util::nn_shared_ptr<T>(                                         \
140
91
            util::i_promise_i_checked_for_null,                                \
141
91
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
91
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::metadata::TemporalExtent> > osgeo::proj::metadata::TemporalExtent::nn_make_shared<osgeo::proj::metadata::TemporalExtent, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Line
Count
Source
138
426
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
426
        return util::nn_shared_ptr<T>(                                         \
140
426
            util::i_promise_i_checked_for_null,                                \
141
426
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
426
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::metadata::Extent> > osgeo::proj::metadata::Extent::nn_make_shared<osgeo::proj::metadata::Extent>()
Line
Count
Source
138
1.93k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
1.93k
        return util::nn_shared_ptr<T>(                                         \
140
1.93k
            util::i_promise_i_checked_for_null,                                \
141
1.93k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
1.93k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::metadata::Identifier> > osgeo::proj::metadata::Identifier::nn_make_shared<osgeo::proj::metadata::Identifier, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, osgeo::proj::util::PropertyMap const&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, osgeo::proj::util::PropertyMap const&)
Line
Count
Source
138
1.19M
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
1.19M
        return util::nn_shared_ptr<T>(                                         \
140
1.19M
            util::i_promise_i_checked_for_null,                                \
141
1.19M
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
1.19M
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::metadata::Identifier> > osgeo::proj::metadata::Identifier::nn_make_shared<osgeo::proj::metadata::Identifier>()
Line
Count
Source
138
909k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
909k
        return util::nn_shared_ptr<T>(                                         \
140
909k
            util::i_promise_i_checked_for_null,                                \
141
909k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
909k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::metadata::PositionalAccuracy> > osgeo::proj::metadata::PositionalAccuracy::nn_make_shared<osgeo::proj::metadata::PositionalAccuracy, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Line
Count
Source
138
9.40k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
9.40k
        return util::nn_shared_ptr<T>(                                         \
140
9.40k
            util::i_promise_i_checked_for_null,                                \
141
9.40k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
9.40k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::common::ObjectDomain> > osgeo::proj::common::ObjectDomain::nn_make_shared<osgeo::proj::common::ObjectDomain, osgeo::proj::util::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&, std::__1::shared_ptr<osgeo::proj::metadata::Extent> const&>(osgeo::proj::util::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&, std::__1::shared_ptr<osgeo::proj::metadata::Extent> const&)
Line
Count
Source
138
30.6k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
30.6k
        return util::nn_shared_ptr<T>(                                         \
140
30.6k
            util::i_promise_i_checked_for_null,                                \
141
30.6k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
30.6k
    }
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::io::AuthorityFactory> > osgeo::proj::io::AuthorityFactory::nn_make_shared<osgeo::proj::io::AuthorityFactory, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::io::DatabaseContext> > const&, char const* const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::io::DatabaseContext> > const&, char const* const&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::io::AuthorityFactory> > osgeo::proj::io::AuthorityFactory::nn_make_shared<osgeo::proj::io::AuthorityFactory, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::io::DatabaseContext> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::io::DatabaseContext> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::io::DatabaseContext> > osgeo::proj::io::DatabaseContext::nn_make_shared<osgeo::proj::io::DatabaseContext>()
Line
Count
Source
138
70.6k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
70.6k
        return util::nn_shared_ptr<T>(                                         \
140
70.6k
            util::i_promise_i_checked_for_null,                                \
141
70.6k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
70.6k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::ConcatenatedOperation> > osgeo::proj::operation::ConcatenatedOperation::nn_make_shared<osgeo::proj::operation::ConcatenatedOperation, std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::CoordinateOperation> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::CoordinateOperation> > > > const&>(std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::CoordinateOperation> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::CoordinateOperation> > > > const&)
Line
Count
Source
138
16.7k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
16.7k
        return util::nn_shared_ptr<T>(                                         \
140
16.7k
            util::i_promise_i_checked_for_null,                                \
141
16.7k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
16.7k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::ConcatenatedOperation> > osgeo::proj::operation::ConcatenatedOperation::nn_make_shared<osgeo::proj::operation::ConcatenatedOperation, osgeo::proj::operation::ConcatenatedOperation const&>(osgeo::proj::operation::ConcatenatedOperation const&)
Line
Count
Source
138
1.05k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
1.05k
        return util::nn_shared_ptr<T>(                                         \
140
1.05k
            util::i_promise_i_checked_for_null,                                \
141
1.05k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
1.05k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Conversion> > osgeo::proj::operation::Conversion::nn_make_shared<osgeo::proj::operation::Conversion, osgeo::proj::operation::Conversion const&>(osgeo::proj::operation::Conversion const&)
Line
Count
Source
138
8.37k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
8.37k
        return util::nn_shared_ptr<T>(                                         \
140
8.37k
            util::i_promise_i_checked_for_null,                                \
141
8.37k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
8.37k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Conversion> > osgeo::proj::operation::Conversion::nn_make_shared<osgeo::proj::operation::Conversion, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::OperationMethod> > const&, std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::GeneralParameterValue> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::GeneralParameterValue> > > > const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::OperationMethod> > const&, std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::GeneralParameterValue> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::GeneralParameterValue> > > > const&)
Line
Count
Source
138
35.5k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
35.5k
        return util::nn_shared_ptr<T>(                                         \
140
35.5k
            util::i_promise_i_checked_for_null,                                \
141
35.5k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
35.5k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::InverseConversion> > osgeo::proj::operation::Conversion::nn_make_shared<osgeo::proj::operation::InverseConversion, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Conversion> > >(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Conversion> >&&)
Line
Count
Source
138
1.46k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
1.46k
        return util::nn_shared_ptr<T>(                                         \
140
1.46k
            util::i_promise_i_checked_for_null,                                \
141
1.46k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
1.46k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::PROJBasedOperation> > osgeo::proj::operation::PROJBasedOperation::nn_make_shared<osgeo::proj::operation::PROJBasedOperation, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::OperationMethod> >&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::OperationMethod> >&)
Line
Count
Source
138
32.7k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
32.7k
        return util::nn_shared_ptr<T>(                                         \
140
32.7k
            util::i_promise_i_checked_for_null,                                \
141
32.7k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
32.7k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::PROJBasedOperation> > osgeo::proj::operation::PROJBasedOperation::nn_make_shared<osgeo::proj::operation::PROJBasedOperation, osgeo::proj::operation::PROJBasedOperation const&>(osgeo::proj::operation::PROJBasedOperation const&)
Line
Count
Source
138
3.38k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
3.38k
        return util::nn_shared_ptr<T>(                                         \
140
3.38k
            util::i_promise_i_checked_for_null,                                \
141
3.38k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
3.38k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::OperationMethod> > osgeo::proj::operation::OperationMethod::nn_make_shared<osgeo::proj::operation::OperationMethod>()
Line
Count
Source
138
115k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
115k
        return util::nn_shared_ptr<T>(                                         \
140
115k
            util::i_promise_i_checked_for_null,                                \
141
115k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
115k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::OperationParameterValue> > osgeo::proj::operation::OperationParameterValue::nn_make_shared<osgeo::proj::operation::OperationParameterValue, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::OperationParameter> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::ParameterValue> > const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::OperationParameter> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::ParameterValue> > const&)
Line
Count
Source
138
109k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
109k
        return util::nn_shared_ptr<T>(                                         \
140
109k
            util::i_promise_i_checked_for_null,                                \
141
109k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
109k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::OperationParameter> > osgeo::proj::operation::OperationParameter::nn_make_shared<osgeo::proj::operation::OperationParameter>()
Line
Count
Source
138
114k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
114k
        return util::nn_shared_ptr<T>(                                         \
140
114k
            util::i_promise_i_checked_for_null,                                \
141
114k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
114k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::ParameterValue> > osgeo::proj::operation::ParameterValue::nn_make_shared<osgeo::proj::operation::ParameterValue, osgeo::proj::common::Measure const&>(osgeo::proj::common::Measure const&)
Line
Count
Source
138
95.8k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
95.8k
        return util::nn_shared_ptr<T>(                                         \
140
95.8k
            util::i_promise_i_checked_for_null,                                \
141
95.8k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
95.8k
    }
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::ParameterValue> > osgeo::proj::operation::ParameterValue::nn_make_shared<osgeo::proj::operation::ParameterValue, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, osgeo::proj::operation::ParameterValue::Type>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&, osgeo::proj::operation::ParameterValue::Type&&)
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::ParameterValue> > osgeo::proj::operation::ParameterValue::nn_make_shared<osgeo::proj::operation::ParameterValue, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, osgeo::proj::operation::ParameterValue::Type>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, osgeo::proj::operation::ParameterValue::Type&&)
Line
Count
Source
138
18.3k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
18.3k
        return util::nn_shared_ptr<T>(                                         \
140
18.3k
            util::i_promise_i_checked_for_null,                                \
141
18.3k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
18.3k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::ParameterValue> > osgeo::proj::operation::ParameterValue::nn_make_shared<osgeo::proj::operation::ParameterValue, int&>(int&)
Line
Count
Source
138
87
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
87
        return util::nn_shared_ptr<T>(                                         \
140
87
            util::i_promise_i_checked_for_null,                                \
141
87
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
87
    }
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::ParameterValue> > osgeo::proj::operation::ParameterValue::nn_make_shared<osgeo::proj::operation::ParameterValue, bool&>(bool&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::PointMotionOperation> > osgeo::proj::operation::PointMotionOperation::nn_make_shared<osgeo::proj::operation::PointMotionOperation, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CRS> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::OperationMethod> > const&, std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::GeneralParameterValue> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::GeneralParameterValue> > > > const&, std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::metadata::PositionalAccuracy> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::metadata::PositionalAccuracy> > > > const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CRS> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::OperationMethod> > const&, std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::GeneralParameterValue> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::GeneralParameterValue> > > > const&, std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::metadata::PositionalAccuracy> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::metadata::PositionalAccuracy> > > > const&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::PointMotionOperation> > osgeo::proj::operation::PointMotionOperation::nn_make_shared<osgeo::proj::operation::PointMotionOperation, osgeo::proj::operation::PointMotionOperation const&>(osgeo::proj::operation::PointMotionOperation const&)
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Transformation> > osgeo::proj::operation::Transformation::nn_make_shared<osgeo::proj::operation::Transformation, osgeo::proj::operation::Transformation const&>(osgeo::proj::operation::Transformation const&)
Line
Count
Source
138
5.12k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
5.12k
        return util::nn_shared_ptr<T>(                                         \
140
5.12k
            util::i_promise_i_checked_for_null,                                \
141
5.12k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
5.12k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Transformation> > osgeo::proj::operation::Transformation::nn_make_shared<osgeo::proj::operation::Transformation, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CRS> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CRS> > const&, std::__1::shared_ptr<osgeo::proj::crs::CRS> const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::OperationMethod> > const&, std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::GeneralParameterValue> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::GeneralParameterValue> > > > const&, std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::metadata::PositionalAccuracy> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::metadata::PositionalAccuracy> > > > const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CRS> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CRS> > const&, std::__1::shared_ptr<osgeo::proj::crs::CRS> const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::OperationMethod> > const&, std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::GeneralParameterValue> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::GeneralParameterValue> > > > const&, std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::metadata::PositionalAccuracy> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::metadata::PositionalAccuracy> > > > const&)
Line
Count
Source
138
35.8k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
35.8k
        return util::nn_shared_ptr<T>(                                         \
140
35.8k
            util::i_promise_i_checked_for_null,                                \
141
35.8k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
35.8k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::InverseTransformation> > osgeo::proj::operation::Transformation::nn_make_shared<osgeo::proj::operation::InverseTransformation, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Transformation> > >(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Transformation> >&&)
Line
Count
Source
138
10
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
10
        return util::nn_shared_ptr<T>(                                         \
140
10
            util::i_promise_i_checked_for_null,                                \
141
10
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
10
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::coordinates::CoordinateMetadata> > osgeo::proj::coordinates::CoordinateMetadata::nn_make_shared<osgeo::proj::coordinates::CoordinateMetadata, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CRS> > const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CRS> > const&)
Line
Count
Source
138
15
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
15
        return util::nn_shared_ptr<T>(                                         \
140
15
            util::i_promise_i_checked_for_null,                                \
141
15
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
15
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::coordinates::CoordinateMetadata> > osgeo::proj::coordinates::CoordinateMetadata::nn_make_shared<osgeo::proj::coordinates::CoordinateMetadata, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CRS> > const&, double&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CRS> > const&, double&)
Line
Count
Source
138
53
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
53
        return util::nn_shared_ptr<T>(                                         \
140
53
            util::i_promise_i_checked_for_null,                                \
141
53
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
53
    }
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::coordinates::CoordinateMetadata> > osgeo::proj::coordinates::CoordinateMetadata::nn_make_shared<osgeo::proj::coordinates::CoordinateMetadata, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CRS> >&, double>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CRS> >&, double&&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::coordinates::CoordinateMetadata> > osgeo::proj::coordinates::CoordinateMetadata::nn_make_shared<osgeo::proj::coordinates::CoordinateMetadata, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CRS> >&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CRS> >&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::GeodeticCRS> > osgeo::proj::crs::GeodeticCRS::nn_make_shared<osgeo::proj::crs::GeodeticCRS, osgeo::proj::crs::GeodeticCRS const&>(osgeo::proj::crs::GeodeticCRS const&)
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::GeodeticCRS> > osgeo::proj::crs::GeodeticCRS::nn_make_shared<osgeo::proj::crs::GeodeticCRS, std::__1::shared_ptr<osgeo::proj::datum::GeodeticReferenceFrame> const&, std::__1::shared_ptr<osgeo::proj::datum::DatumEnsemble> const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::SphericalCS> > const&>(std::__1::shared_ptr<osgeo::proj::datum::GeodeticReferenceFrame> const&, std::__1::shared_ptr<osgeo::proj::datum::DatumEnsemble> const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::SphericalCS> > const&)
Line
Count
Source
138
700
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
700
        return util::nn_shared_ptr<T>(                                         \
140
700
            util::i_promise_i_checked_for_null,                                \
141
700
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
700
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::GeodeticCRS> > osgeo::proj::crs::GeodeticCRS::nn_make_shared<osgeo::proj::crs::GeodeticCRS, std::__1::shared_ptr<osgeo::proj::datum::GeodeticReferenceFrame> const&, std::__1::shared_ptr<osgeo::proj::datum::DatumEnsemble> const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CartesianCS> > const&>(std::__1::shared_ptr<osgeo::proj::datum::GeodeticReferenceFrame> const&, std::__1::shared_ptr<osgeo::proj::datum::DatumEnsemble> const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CartesianCS> > const&)
Line
Count
Source
138
5.22k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
5.22k
        return util::nn_shared_ptr<T>(                                         \
140
5.22k
            util::i_promise_i_checked_for_null,                                \
141
5.22k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
5.22k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::GeographicCRS> > osgeo::proj::crs::GeographicCRS::nn_make_shared<osgeo::proj::crs::GeographicCRS, osgeo::proj::crs::GeographicCRS const&>(osgeo::proj::crs::GeographicCRS const&)
Line
Count
Source
138
83
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
83
        return util::nn_shared_ptr<T>(                                         \
140
83
            util::i_promise_i_checked_for_null,                                \
141
83
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
83
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::GeographicCRS> > osgeo::proj::crs::GeographicCRS::nn_make_shared<osgeo::proj::crs::GeographicCRS, std::__1::shared_ptr<osgeo::proj::datum::GeodeticReferenceFrame> const&, std::__1::shared_ptr<osgeo::proj::datum::DatumEnsemble> const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::EllipsoidalCS> > const&>(std::__1::shared_ptr<osgeo::proj::datum::GeodeticReferenceFrame> const&, std::__1::shared_ptr<osgeo::proj::datum::DatumEnsemble> const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::EllipsoidalCS> > const&)
Line
Count
Source
138
64.8k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
64.8k
        return util::nn_shared_ptr<T>(                                         \
140
64.8k
            util::i_promise_i_checked_for_null,                                \
141
64.8k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
64.8k
    }
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::VerticalCRS> > osgeo::proj::crs::VerticalCRS::nn_make_shared<osgeo::proj::crs::VerticalCRS, osgeo::proj::crs::VerticalCRS const&>(osgeo::proj::crs::VerticalCRS const&)
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::VerticalCRS> > osgeo::proj::crs::VerticalCRS::nn_make_shared<osgeo::proj::crs::VerticalCRS, std::__1::shared_ptr<osgeo::proj::datum::VerticalReferenceFrame> const&, std::__1::shared_ptr<osgeo::proj::datum::DatumEnsemble> const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::VerticalCS> > const&>(std::__1::shared_ptr<osgeo::proj::datum::VerticalReferenceFrame> const&, std::__1::shared_ptr<osgeo::proj::datum::DatumEnsemble> const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::VerticalCS> > const&)
Line
Count
Source
138
33.7k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
33.7k
        return util::nn_shared_ptr<T>(                                         \
140
33.7k
            util::i_promise_i_checked_for_null,                                \
141
33.7k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
33.7k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::ProjectedCRS> > osgeo::proj::crs::ProjectedCRS::nn_make_shared<osgeo::proj::crs::ProjectedCRS, osgeo::proj::crs::ProjectedCRS const&>(osgeo::proj::crs::ProjectedCRS const&)
Line
Count
Source
138
2
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
2
        return util::nn_shared_ptr<T>(                                         \
140
2
            util::i_promise_i_checked_for_null,                                \
141
2
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
2
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::ProjectedCRS> > osgeo::proj::crs::ProjectedCRS::nn_make_shared<osgeo::proj::crs::ProjectedCRS, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::GeodeticCRS> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Conversion> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CartesianCS> > const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::GeodeticCRS> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Conversion> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CartesianCS> > const&)
Line
Count
Source
138
18.0k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
18.0k
        return util::nn_shared_ptr<T>(                                         \
140
18.0k
            util::i_promise_i_checked_for_null,                                \
141
18.0k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
18.0k
    }
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CompoundCRS> > osgeo::proj::crs::CompoundCRS::nn_make_shared<osgeo::proj::crs::CompoundCRS, osgeo::proj::crs::CompoundCRS const&>(osgeo::proj::crs::CompoundCRS const&)
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CompoundCRS> > osgeo::proj::crs::CompoundCRS::nn_make_shared<osgeo::proj::crs::CompoundCRS, std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CRS> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CRS> > > > const&>(std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CRS> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CRS> > > > const&)
Line
Count
Source
138
17.9k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
17.9k
        return util::nn_shared_ptr<T>(                                         \
140
17.9k
            util::i_promise_i_checked_for_null,                                \
141
17.9k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
17.9k
    }
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::BoundCRS> > osgeo::proj::crs::BoundCRS::nn_make_shared<osgeo::proj::crs::BoundCRS, osgeo::proj::crs::BoundCRS const&>(osgeo::proj::crs::BoundCRS const&)
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::BoundCRS> > osgeo::proj::crs::BoundCRS::nn_make_shared<osgeo::proj::crs::BoundCRS, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CRS> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CRS> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Transformation> > const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CRS> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CRS> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Transformation> > const&)
Line
Count
Source
138
20.3k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
20.3k
        return util::nn_shared_ptr<T>(                                         \
140
20.3k
            util::i_promise_i_checked_for_null,                                \
141
20.3k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
20.3k
    }
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedGeodeticCRS> > osgeo::proj::crs::DerivedGeodeticCRS::nn_make_shared<osgeo::proj::crs::DerivedGeodeticCRS, osgeo::proj::crs::DerivedGeodeticCRS const&>(osgeo::proj::crs::DerivedGeodeticCRS const&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedGeodeticCRS> > osgeo::proj::crs::DerivedGeodeticCRS::nn_make_shared<osgeo::proj::crs::DerivedGeodeticCRS, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::GeodeticCRS> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Conversion> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CartesianCS> > const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::GeodeticCRS> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Conversion> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CartesianCS> > const&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedGeodeticCRS> > osgeo::proj::crs::DerivedGeodeticCRS::nn_make_shared<osgeo::proj::crs::DerivedGeodeticCRS, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::GeodeticCRS> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Conversion> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::SphericalCS> > const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::GeodeticCRS> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Conversion> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::SphericalCS> > const&)
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedGeographicCRS> > osgeo::proj::crs::DerivedGeographicCRS::nn_make_shared<osgeo::proj::crs::DerivedGeographicCRS, osgeo::proj::crs::DerivedGeographicCRS const&>(osgeo::proj::crs::DerivedGeographicCRS const&)
Line
Count
Source
138
2
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
2
        return util::nn_shared_ptr<T>(                                         \
140
2
            util::i_promise_i_checked_for_null,                                \
141
2
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
2
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedGeographicCRS> > osgeo::proj::crs::DerivedGeographicCRS::nn_make_shared<osgeo::proj::crs::DerivedGeographicCRS, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::GeodeticCRS> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Conversion> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::EllipsoidalCS> > const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::GeodeticCRS> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Conversion> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::EllipsoidalCS> > const&)
Line
Count
Source
138
2.73k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
2.73k
        return util::nn_shared_ptr<T>(                                         \
140
2.73k
            util::i_promise_i_checked_for_null,                                \
141
2.73k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
2.73k
    }
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedProjectedCRS> > osgeo::proj::crs::DerivedProjectedCRS::nn_make_shared<osgeo::proj::crs::DerivedProjectedCRS, osgeo::proj::crs::DerivedProjectedCRS const&>(osgeo::proj::crs::DerivedProjectedCRS const&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedProjectedCRS> > osgeo::proj::crs::DerivedProjectedCRS::nn_make_shared<osgeo::proj::crs::DerivedProjectedCRS, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::ProjectedCRS> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Conversion> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystem> > const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::ProjectedCRS> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Conversion> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystem> > const&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::TemporalCRS> > osgeo::proj::crs::TemporalCRS::nn_make_shared<osgeo::proj::crs::TemporalCRS, osgeo::proj::crs::TemporalCRS const&>(osgeo::proj::crs::TemporalCRS const&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::TemporalCRS> > osgeo::proj::crs::TemporalCRS::nn_make_shared<osgeo::proj::crs::TemporalCRS, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::TemporalDatum> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::TemporalCS> > const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::TemporalDatum> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::TemporalCS> > const&)
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::EngineeringCRS> > osgeo::proj::crs::EngineeringCRS::nn_make_shared<osgeo::proj::crs::EngineeringCRS, osgeo::proj::crs::EngineeringCRS const&>(osgeo::proj::crs::EngineeringCRS const&)
Line
Count
Source
138
168
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
168
        return util::nn_shared_ptr<T>(                                         \
140
168
            util::i_promise_i_checked_for_null,                                \
141
168
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
168
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::EngineeringCRS> > osgeo::proj::crs::EngineeringCRS::nn_make_shared<osgeo::proj::crs::EngineeringCRS, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::EngineeringDatum> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystem> > const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::EngineeringDatum> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystem> > const&)
Line
Count
Source
138
1.91k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
1.91k
        return util::nn_shared_ptr<T>(                                         \
140
1.91k
            util::i_promise_i_checked_for_null,                                \
141
1.91k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
1.91k
    }
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::ParametricCRS> > osgeo::proj::crs::ParametricCRS::nn_make_shared<osgeo::proj::crs::ParametricCRS, osgeo::proj::crs::ParametricCRS const&>(osgeo::proj::crs::ParametricCRS const&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::ParametricCRS> > osgeo::proj::crs::ParametricCRS::nn_make_shared<osgeo::proj::crs::ParametricCRS, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::ParametricDatum> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::ParametricCS> > const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::ParametricDatum> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::ParametricCS> > const&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedVerticalCRS> > osgeo::proj::crs::DerivedVerticalCRS::nn_make_shared<osgeo::proj::crs::DerivedVerticalCRS, osgeo::proj::crs::DerivedVerticalCRS const&>(osgeo::proj::crs::DerivedVerticalCRS const&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedVerticalCRS> > osgeo::proj::crs::DerivedVerticalCRS::nn_make_shared<osgeo::proj::crs::DerivedVerticalCRS, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::VerticalCRS> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Conversion> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::VerticalCS> > const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::VerticalCRS> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Conversion> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::VerticalCS> > const&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedEngineeringCRSTraits> > > osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedEngineeringCRSTraits>::nn_make_shared<osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedEngineeringCRSTraits>, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::EngineeringCRS> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Conversion> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystem> > const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::EngineeringCRS> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Conversion> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystem> > const&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedEngineeringCRSTraits> > > osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedEngineeringCRSTraits>::nn_make_shared<osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedEngineeringCRSTraits>, osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedEngineeringCRSTraits> const&>(osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedEngineeringCRSTraits> const&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedParametricCRSTraits> > > osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedParametricCRSTraits>::nn_make_shared<osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedParametricCRSTraits>, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::ParametricCRS> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Conversion> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::ParametricCS> > const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::ParametricCRS> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Conversion> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::ParametricCS> > const&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedParametricCRSTraits> > > osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedParametricCRSTraits>::nn_make_shared<osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedParametricCRSTraits>, osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedParametricCRSTraits> const&>(osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedParametricCRSTraits> const&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedTemporalCRSTraits> > > osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedTemporalCRSTraits>::nn_make_shared<osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedTemporalCRSTraits>, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::TemporalCRS> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Conversion> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::TemporalCS> > const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::TemporalCRS> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Conversion> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::TemporalCS> > const&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedTemporalCRSTraits> > > osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedTemporalCRSTraits>::nn_make_shared<osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedTemporalCRSTraits>, osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedTemporalCRSTraits> const&>(osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedTemporalCRSTraits> const&)
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::PrimeMeridian> > osgeo::proj::datum::PrimeMeridian::nn_make_shared<osgeo::proj::datum::PrimeMeridian, osgeo::proj::common::Angle const&>(osgeo::proj::common::Angle const&)
Line
Count
Source
138
6.15k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
6.15k
        return util::nn_shared_ptr<T>(                                         \
140
6.15k
            util::i_promise_i_checked_for_null,                                \
141
6.15k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
6.15k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::Ellipsoid> > osgeo::proj::datum::Ellipsoid::nn_make_shared<osgeo::proj::datum::Ellipsoid, osgeo::proj::common::Length const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&>(osgeo::proj::common::Length const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Line
Count
Source
138
4.83k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
4.83k
        return util::nn_shared_ptr<T>(                                         \
140
4.83k
            util::i_promise_i_checked_for_null,                                \
141
4.83k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
4.83k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::Ellipsoid> > osgeo::proj::datum::Ellipsoid::nn_make_shared<osgeo::proj::datum::Ellipsoid, osgeo::proj::common::Length const&, osgeo::proj::common::Scale const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&>(osgeo::proj::common::Length const&, osgeo::proj::common::Scale const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Line
Count
Source
138
7.62k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
7.62k
        return util::nn_shared_ptr<T>(                                         \
140
7.62k
            util::i_promise_i_checked_for_null,                                \
141
7.62k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
7.62k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::Ellipsoid> > osgeo::proj::datum::Ellipsoid::nn_make_shared<osgeo::proj::datum::Ellipsoid, osgeo::proj::common::Length const&, osgeo::proj::common::Length const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&>(osgeo::proj::common::Length const&, osgeo::proj::common::Length const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Line
Count
Source
138
326
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
326
        return util::nn_shared_ptr<T>(                                         \
140
326
            util::i_promise_i_checked_for_null,                                \
141
326
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
326
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::Ellipsoid> > osgeo::proj::datum::Ellipsoid::nn_make_shared<osgeo::proj::datum::Ellipsoid, osgeo::proj::datum::Ellipsoid const&>(osgeo::proj::datum::Ellipsoid const&)
Line
Count
Source
138
506
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
506
        return util::nn_shared_ptr<T>(                                         \
140
506
            util::i_promise_i_checked_for_null,                                \
141
506
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
506
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::GeodeticReferenceFrame> > osgeo::proj::datum::GeodeticReferenceFrame::nn_make_shared<osgeo::proj::datum::GeodeticReferenceFrame, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::Ellipsoid> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::PrimeMeridian> > const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::Ellipsoid> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::PrimeMeridian> > const&)
Line
Count
Source
138
16.0k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
16.0k
        return util::nn_shared_ptr<T>(                                         \
140
16.0k
            util::i_promise_i_checked_for_null,                                \
141
16.0k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
16.0k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::DynamicGeodeticReferenceFrame> > osgeo::proj::datum::DynamicGeodeticReferenceFrame::nn_make_shared<osgeo::proj::datum::DynamicGeodeticReferenceFrame, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::Ellipsoid> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::PrimeMeridian> > const&, osgeo::proj::common::Measure const&, osgeo::proj::util::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::Ellipsoid> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::PrimeMeridian> > const&, osgeo::proj::common::Measure const&, osgeo::proj::util::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&)
Line
Count
Source
138
67
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
67
        return util::nn_shared_ptr<T>(                                         \
140
67
            util::i_promise_i_checked_for_null,                                \
141
67
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
67
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::DatumEnsemble> > osgeo::proj::datum::DatumEnsemble::nn_make_shared<osgeo::proj::datum::DatumEnsemble, std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::Datum> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::Datum> > > > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::metadata::PositionalAccuracy> > const&>(std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::Datum> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::Datum> > > > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::metadata::PositionalAccuracy> > const&)
Line
Count
Source
138
135
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
135
        return util::nn_shared_ptr<T>(                                         \
140
135
            util::i_promise_i_checked_for_null,                                \
141
135
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
135
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::VerticalReferenceFrame> > osgeo::proj::datum::VerticalReferenceFrame::nn_make_shared<osgeo::proj::datum::VerticalReferenceFrame, osgeo::proj::util::optional<osgeo::proj::datum::RealizationMethod> const&>(osgeo::proj::util::optional<osgeo::proj::datum::RealizationMethod> const&)
Line
Count
Source
138
19.4k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
19.4k
        return util::nn_shared_ptr<T>(                                         \
140
19.4k
            util::i_promise_i_checked_for_null,                                \
141
19.4k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
19.4k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::DynamicVerticalReferenceFrame> > osgeo::proj::datum::DynamicVerticalReferenceFrame::nn_make_shared<osgeo::proj::datum::DynamicVerticalReferenceFrame, osgeo::proj::util::optional<osgeo::proj::datum::RealizationMethod> const&, osgeo::proj::common::Measure const&, osgeo::proj::util::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&>(osgeo::proj::util::optional<osgeo::proj::datum::RealizationMethod> const&, osgeo::proj::common::Measure const&, osgeo::proj::util::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&)
Line
Count
Source
138
39
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
39
        return util::nn_shared_ptr<T>(                                         \
140
39
            util::i_promise_i_checked_for_null,                                \
141
39
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
39
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::TemporalDatum> > osgeo::proj::datum::TemporalDatum::nn_make_shared<osgeo::proj::datum::TemporalDatum, osgeo::proj::common::DateTime const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&>(osgeo::proj::common::DateTime const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Line
Count
Source
138
52
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
52
        return util::nn_shared_ptr<T>(                                         \
140
52
            util::i_promise_i_checked_for_null,                                \
141
52
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
52
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::EngineeringDatum> > osgeo::proj::datum::EngineeringDatum::nn_make_shared<osgeo::proj::datum::EngineeringDatum>()
Line
Count
Source
138
2.06k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
2.06k
        return util::nn_shared_ptr<T>(                                         \
140
2.06k
            util::i_promise_i_checked_for_null,                                \
141
2.06k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
2.06k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::ParametricDatum> > osgeo::proj::datum::ParametricDatum::nn_make_shared<osgeo::proj::datum::ParametricDatum>()
Line
Count
Source
138
41
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
41
        return util::nn_shared_ptr<T>(                                         \
140
41
            util::i_promise_i_checked_for_null,                                \
141
41
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
41
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::Meridian> > osgeo::proj::cs::Meridian::nn_make_shared<osgeo::proj::cs::Meridian, osgeo::proj::common::Angle const&>(osgeo::proj::common::Angle const&)
Line
Count
Source
138
168
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
168
        return util::nn_shared_ptr<T>(                                         \
140
168
            util::i_promise_i_checked_for_null,                                \
141
168
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
168
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> > osgeo::proj::cs::CoordinateSystemAxis::nn_make_shared<osgeo::proj::cs::CoordinateSystemAxis>()
Line
Count
Source
138
331k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
331k
        return util::nn_shared_ptr<T>(                                         \
140
331k
            util::i_promise_i_checked_for_null,                                \
141
331k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
331k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::SphericalCS> > osgeo::proj::cs::SphericalCS::nn_make_shared<osgeo::proj::cs::SphericalCS, std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> > > >&>(std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> > > >&)
Line
Count
Source
138
700
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
700
        return util::nn_shared_ptr<T>(                                         \
140
700
            util::i_promise_i_checked_for_null,                                \
141
700
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
700
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::EllipsoidalCS> > osgeo::proj::cs::EllipsoidalCS::nn_make_shared<osgeo::proj::cs::EllipsoidalCS, std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> > > >&>(std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> > > >&)
Line
Count
Source
138
67.4k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
67.4k
        return util::nn_shared_ptr<T>(                                         \
140
67.4k
            util::i_promise_i_checked_for_null,                                \
141
67.4k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
67.4k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::VerticalCS> > osgeo::proj::cs::VerticalCS::nn_make_shared<osgeo::proj::cs::VerticalCS, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> > const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> > const&)
Line
Count
Source
138
529
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
529
        return util::nn_shared_ptr<T>(                                         \
140
529
            util::i_promise_i_checked_for_null,                                \
141
529
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
529
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::VerticalCS> > osgeo::proj::cs::VerticalCS::nn_make_shared<osgeo::proj::cs::VerticalCS, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> > >(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> >&&)
Line
Count
Source
138
32.6k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
32.6k
        return util::nn_shared_ptr<T>(                                         \
140
32.6k
            util::i_promise_i_checked_for_null,                                \
141
32.6k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
32.6k
    }
dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CartesianCS> > osgeo::proj::cs::CartesianCS::nn_make_shared<osgeo::proj::cs::CartesianCS, std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> > > >&>(std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> > > >&)
Line
Count
Source
138
25.8k
    static util::nn_shared_ptr<T> nn_make_shared(Args &&...args) {             \
139
25.8k
        return util::nn_shared_ptr<T>(                                         \
140
25.8k
            util::i_promise_i_checked_for_null,                                \
141
25.8k
            std::shared_ptr<T>(new T(std::forward<Args>(args)...)));           \
142
25.8k
    }
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::AffineCS> > osgeo::proj::cs::AffineCS::nn_make_shared<osgeo::proj::cs::AffineCS, std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> > > >&>(std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> > > >&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::OrdinalCS> > osgeo::proj::cs::OrdinalCS::nn_make_shared<osgeo::proj::cs::OrdinalCS, std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> > > > const&>(std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> > > > const&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::ParametricCS> > osgeo::proj::cs::ParametricCS::nn_make_shared<osgeo::proj::cs::ParametricCS, std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> > > > >(std::__1::vector<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> >, std::__1::allocator<dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> > > >&&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::DateTimeTemporalCS> > osgeo::proj::cs::DateTimeTemporalCS::nn_make_shared<osgeo::proj::cs::DateTimeTemporalCS, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> > const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> > const&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::TemporalCountCS> > osgeo::proj::cs::TemporalCountCS::nn_make_shared<osgeo::proj::cs::TemporalCountCS, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> > const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> > const&)
Unexecuted instantiation: dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::TemporalMeasureCS> > osgeo::proj::cs::TemporalMeasureCS::nn_make_shared<osgeo::proj::cs::TemporalMeasureCS, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> > const&>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> > const&)
143
144
// To include in the protected/private section of a class definition,
145
// to be able to call make_unique on a protected/private constructor
146
#define INLINED_MAKE_UNIQUE                                                    \
147
    template <typename T, typename... Args>                                    \
148
101k
    static std::unique_ptr<T> make_unique(Args &&...args) {                    \
149
101k
        return std::unique_ptr<T>(new T(std::forward<Args>(args)...));         \
150
101k
    }
Unexecuted instantiation: std::__1::unique_ptr<osgeo::proj::io::WKTFormatter, std::__1::default_delete<osgeo::proj::io::WKTFormatter> > osgeo::proj::io::WKTFormatter::make_unique<osgeo::proj::io::WKTFormatter, osgeo::proj::io::WKTFormatter::Convention&>(osgeo::proj::io::WKTFormatter::Convention&)
std::__1::unique_ptr<osgeo::proj::io::PROJStringFormatter, std::__1::default_delete<osgeo::proj::io::PROJStringFormatter> > osgeo::proj::io::PROJStringFormatter::make_unique<osgeo::proj::io::PROJStringFormatter, osgeo::proj::io::PROJStringFormatter::Convention&, std::__1::shared_ptr<osgeo::proj::io::DatabaseContext>&>(osgeo::proj::io::PROJStringFormatter::Convention&, std::__1::shared_ptr<osgeo::proj::io::DatabaseContext>&)
Line
Count
Source
148
84.4k
    static std::unique_ptr<T> make_unique(Args &&...args) {                    \
149
84.4k
        return std::unique_ptr<T>(new T(std::forward<Args>(args)...));         \
150
84.4k
    }
Unexecuted instantiation: std::__1::unique_ptr<osgeo::proj::io::JSONFormatter, std::__1::default_delete<osgeo::proj::io::JSONFormatter> > osgeo::proj::io::JSONFormatter::make_unique<osgeo::proj::io::JSONFormatter>()
std::__1::unique_ptr<osgeo::proj::operation::CoordinateOperationContext, std::__1::default_delete<osgeo::proj::operation::CoordinateOperationContext> > osgeo::proj::operation::CoordinateOperationContext::make_unique<osgeo::proj::operation::CoordinateOperationContext>()
Line
Count
Source
148
9.08k
    static std::unique_ptr<T> make_unique(Args &&...args) {                    \
149
9.08k
        return std::unique_ptr<T>(new T(std::forward<Args>(args)...));         \
150
9.08k
    }
std::__1::unique_ptr<osgeo::proj::operation::CoordinateOperationContext, std::__1::default_delete<osgeo::proj::operation::CoordinateOperationContext> > osgeo::proj::operation::CoordinateOperationContext::make_unique<osgeo::proj::operation::CoordinateOperationContext, osgeo::proj::operation::CoordinateOperationContext const&>(osgeo::proj::operation::CoordinateOperationContext const&)
Line
Count
Source
148
24
    static std::unique_ptr<T> make_unique(Args &&...args) {                    \
149
24
        return std::unique_ptr<T>(new T(std::forward<Args>(args)...));         \
150
24
    }
std::__1::unique_ptr<osgeo::proj::operation::CoordinateOperationFactory, std::__1::default_delete<osgeo::proj::operation::CoordinateOperationFactory> > osgeo::proj::operation::CoordinateOperationFactory::make_unique<osgeo::proj::operation::CoordinateOperationFactory>()
Line
Count
Source
148
8.03k
    static std::unique_ptr<T> make_unique(Args &&...args) {                    \
149
8.03k
        return std::unique_ptr<T>(new T(std::forward<Args>(args)...));         \
150
8.03k
    }
Unexecuted instantiation: std::__1::unique_ptr<osgeo::proj::operation::CoordinateTransformer, std::__1::default_delete<osgeo::proj::operation::CoordinateTransformer> > osgeo::proj::operation::CoordinateTransformer::make_unique<osgeo::proj::operation::CoordinateTransformer>()
151
152
#ifdef DOXYGEN_ENABLED
153
#define PROJ_FRIEND(mytype)
154
#define PROJ_FRIEND_OPTIONAL(mytype)
155
#else
156
#define PROJ_FRIEND(mytype) friend class mytype
157
#define PROJ_FRIEND_OPTIONAL(mytype) friend class util::optional<mytype>
158
#endif
159
160
#ifndef PROJ_PRIVATE
161
#define PROJ_PRIVATE public
162
#endif
163
164
#if defined(__GNUC__)
165
#define PROJ_NO_INLINE __attribute__((noinline))
166
#define PROJ_NO_RETURN __attribute__((noreturn))
167
// Applies to a function that has no side effect.
168
#define PROJ_PURE_DECL const noexcept __attribute__((pure))
169
#else
170
#define PROJ_NO_RETURN
171
#define PROJ_NO_INLINE
172
#define PROJ_PURE_DECL const noexcept
173
#endif
174
#define PROJ_PURE_DEFN const noexcept
175
176
//! @endcond
177
178
NS_PROJ_START
179
180
//! @cond Doxygen_Suppress
181
namespace io {
182
class DatabaseContext;
183
using DatabaseContextPtr = std::shared_ptr<DatabaseContext>;
184
} // namespace io
185
//! @endcond
186
187
/** osgeo.proj.util namespace.
188
 *
189
 * \brief A set of base types from ISO 19103, \ref GeoAPI and other PROJ
190
 * specific classes.
191
 */
192
namespace util {
193
194
//! @cond Doxygen_Suppress
195
// Import a few classes from nn.hpp to expose them under our ::util namespace
196
// for conveniency.
197
using ::dropbox::oxygen::i_promise_i_checked_for_null;
198
using ::dropbox::oxygen::nn;
199
using ::dropbox::oxygen::nn_dynamic_pointer_cast;
200
using ::dropbox::oxygen::nn_make_shared;
201
202
// For return statements, to convert from derived type to base type
203
using ::dropbox::oxygen::nn_static_pointer_cast;
204
205
template <typename T> using nn_shared_ptr = nn<std::shared_ptr<T>>;
206
207
// Possible implementation of C++14 std::remove_reference_t
208
// (cf https://en.cppreference.com/w/cpp/types/remove_cv)
209
template <class T>
210
using remove_reference_t = typename std::remove_reference<T>::type;
211
212
// Possible implementation of C++14 std::remove_cv_t
213
// (cf https://en.cppreference.com/w/cpp/types/remove_cv)
214
template <class T> using remove_cv_t = typename std::remove_cv<T>::type;
215
216
// Possible implementation of C++20 std::remove_cvref
217
// (cf https://en.cppreference.com/w/cpp/types/remove_cvref)
218
template <class T> struct remove_cvref {
219
    typedef remove_cv_t<remove_reference_t<T>> type;
220
};
221
222
#define NN_NO_CHECK(p)                                                         \
223
992k
    ::dropbox::oxygen::nn<                                                     \
224
992k
        typename ::NS_PROJ::util::remove_cvref<decltype(p)>::type>(            \
225
992k
        ::dropbox::oxygen::i_promise_i_checked_for_null, (p))
226
227
//! @endcond
228
229
// To avoid formatting differences between clang-format 3.8 and 7
230
#define PROJ_NOEXCEPT noexcept
231
232
//! @cond Doxygen_Suppress
233
// isOfExactType<MyType>(*p) checks that the type of *p is exactly MyType
234
template <typename TemplateT, typename ObjectT>
235
104k
inline bool isOfExactType(const ObjectT &o) {
236
104k
    return typeid(TemplateT).hash_code() == typeid(o).hash_code();
237
104k
}
bool osgeo::proj::util::isOfExactType<osgeo::proj::crs::DerivedGeographicCRS, osgeo::proj::crs::GeographicCRS>(osgeo::proj::crs::GeographicCRS const&)
Line
Count
Source
235
5.56k
inline bool isOfExactType(const ObjectT &o) {
236
5.56k
    return typeid(TemplateT).hash_code() == typeid(o).hash_code();
237
5.56k
}
bool osgeo::proj::util::isOfExactType<osgeo::proj::crs::GeodeticCRS, osgeo::proj::util::IComparable>(osgeo::proj::util::IComparable const&)
Line
Count
Source
235
389
inline bool isOfExactType(const ObjectT &o) {
236
389
    return typeid(TemplateT).hash_code() == typeid(o).hash_code();
237
389
}
bool osgeo::proj::util::isOfExactType<osgeo::proj::crs::GeographicCRS, osgeo::proj::util::IComparable>(osgeo::proj::util::IComparable const&)
Line
Count
Source
235
72.3k
inline bool isOfExactType(const ObjectT &o) {
236
72.3k
    return typeid(TemplateT).hash_code() == typeid(o).hash_code();
237
72.3k
}
bool osgeo::proj::util::isOfExactType<osgeo::proj::crs::VerticalCRS, osgeo::proj::crs::VerticalCRS>(osgeo::proj::crs::VerticalCRS const&)
Line
Count
Source
235
18.1k
inline bool isOfExactType(const ObjectT &o) {
236
18.1k
    return typeid(TemplateT).hash_code() == typeid(o).hash_code();
237
18.1k
}
bool osgeo::proj::util::isOfExactType<osgeo::proj::crs::ProjectedCRS, osgeo::proj::util::IComparable>(osgeo::proj::util::IComparable const&)
Line
Count
Source
235
1
inline bool isOfExactType(const ObjectT &o) {
236
1
    return typeid(TemplateT).hash_code() == typeid(o).hash_code();
237
1
}
bool osgeo::proj::util::isOfExactType<osgeo::proj::datum::GeodeticReferenceFrame, osgeo::proj::util::IComparable>(osgeo::proj::util::IComparable const&)
Line
Count
Source
235
3.69k
inline bool isOfExactType(const ObjectT &o) {
236
3.69k
    return typeid(TemplateT).hash_code() == typeid(o).hash_code();
237
3.69k
}
bool osgeo::proj::util::isOfExactType<osgeo::proj::datum::DynamicGeodeticReferenceFrame, osgeo::proj::util::IComparable>(osgeo::proj::util::IComparable const&)
Line
Count
Source
235
4
inline bool isOfExactType(const ObjectT &o) {
236
4
    return typeid(TemplateT).hash_code() == typeid(o).hash_code();
237
4
}
bool osgeo::proj::util::isOfExactType<osgeo::proj::datum::VerticalReferenceFrame, osgeo::proj::util::IComparable>(osgeo::proj::util::IComparable const&)
Line
Count
Source
235
4.50k
inline bool isOfExactType(const ObjectT &o) {
236
4.50k
    return typeid(TemplateT).hash_code() == typeid(o).hash_code();
237
4.50k
}
bool osgeo::proj::util::isOfExactType<osgeo::proj::datum::DynamicVerticalReferenceFrame, osgeo::proj::util::IComparable>(osgeo::proj::util::IComparable const&)
Line
Count
Source
235
3
inline bool isOfExactType(const ObjectT &o) {
236
3
    return typeid(TemplateT).hash_code() == typeid(o).hash_code();
237
3
}
238
//! @endcond
239
240
/** \brief Loose transposition of [std::optional]
241
 * (https://en.cppreference.com/w/cpp/utility/optional) available from C++17. */
242
template <class T> class optional {
243
  public:
244
    //! @cond Doxygen_Suppress
245
15.0M
    inline optional() : hasVal_(false) {}
osgeo::proj::util::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::optional()
Line
Count
Source
245
11.3M
    inline optional() : hasVal_(false) {}
osgeo::proj::util::optional<osgeo::proj::metadata::Citation>::optional()
Line
Count
Source
245
2.22M
    inline optional() : hasVal_(false) {}
osgeo::proj::util::optional<osgeo::proj::common::Measure>::optional()
Line
Count
Source
245
44.0k
    inline optional() : hasVal_(false) {}
osgeo::proj::util::optional<osgeo::proj::datum::RealizationMethod>::optional()
Line
Count
Source
245
38.9k
    inline optional() : hasVal_(false) {}
osgeo::proj::util::optional<double>::optional()
Line
Count
Source
245
663k
    inline optional() : hasVal_(false) {}
osgeo::proj::util::optional<osgeo::proj::cs::RangeMeaning>::optional()
Line
Count
Source
245
331k
    inline optional() : hasVal_(false) {}
osgeo::proj::util::optional<osgeo::proj::common::DataEpoch>::optional()
Line
Count
Source
245
344k
    inline optional() : hasVal_(false) {}
osgeo::proj::util::optional<osgeo::proj::common::DateTime>::optional()
Line
Count
Source
245
37.7k
    inline optional() : hasVal_(false) {}
osgeo::proj::util::optional<osgeo::proj::common::Scale>::optional()
Line
Count
Source
245
5.15k
    inline optional() : hasVal_(false) {}
osgeo::proj::util::optional<osgeo::proj::common::Length>::optional()
Line
Count
Source
245
25.2k
    inline optional() : hasVal_(false) {}
246
7.99k
    inline explicit optional(const T &val) : hasVal_(true), val_(val) {}
Unexecuted instantiation: osgeo::proj::util::optional<osgeo::proj::cs::RangeMeaning>::optional(osgeo::proj::cs::RangeMeaning const&)
Unexecuted instantiation: osgeo::proj::util::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::optional(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
osgeo::proj::util::optional<osgeo::proj::common::DataEpoch>::optional(osgeo::proj::common::DataEpoch const&)
Line
Count
Source
246
53
    inline explicit optional(const T &val) : hasVal_(true), val_(val) {}
osgeo::proj::util::optional<osgeo::proj::common::Scale>::optional(osgeo::proj::common::Scale const&)
Line
Count
Source
246
7.62k
    inline explicit optional(const T &val) : hasVal_(true), val_(val) {}
osgeo::proj::util::optional<osgeo::proj::common::Length>::optional(osgeo::proj::common::Length const&)
Line
Count
Source
246
326
    inline explicit optional(const T &val) : hasVal_(true), val_(val) {}
247
    inline explicit optional(T &&val)
248
65
        : hasVal_(true), val_(std::forward<T>(val)) {}
osgeo::proj::util::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::optional(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&)
Line
Count
Source
248
62
        : hasVal_(true), val_(std::forward<T>(val)) {}
osgeo::proj::util::optional<osgeo::proj::common::Measure>::optional(osgeo::proj::common::Measure&&)
Line
Count
Source
248
3
        : hasVal_(true), val_(std::forward<T>(val)) {}
Unexecuted instantiation: osgeo::proj::util::optional<osgeo::proj::common::DataEpoch>::optional(osgeo::proj::common::DataEpoch&&)
249
250
79.1k
    inline optional(const optional &) = default;
osgeo::proj::util::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::optional(osgeo::proj::util::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&)
Line
Count
Source
250
48.5k
    inline optional(const optional &) = default;
Unexecuted instantiation: osgeo::proj::util::optional<osgeo::proj::metadata::Citation>::optional(osgeo::proj::util::optional<osgeo::proj::metadata::Citation> const&)
osgeo::proj::util::optional<osgeo::proj::common::DataEpoch>::optional(osgeo::proj::util::optional<osgeo::proj::common::DataEpoch> const&)
Line
Count
Source
250
22.6k
    inline optional(const optional &) = default;
osgeo::proj::util::optional<osgeo::proj::common::Measure>::optional(osgeo::proj::util::optional<osgeo::proj::common::Measure> const&)
Line
Count
Source
250
6.36k
    inline optional(const optional &) = default;
osgeo::proj::util::optional<osgeo::proj::common::Scale>::optional(osgeo::proj::util::optional<osgeo::proj::common::Scale> const&)
Line
Count
Source
250
506
    inline optional(const optional &) = default;
osgeo::proj::util::optional<osgeo::proj::common::Length>::optional(osgeo::proj::util::optional<osgeo::proj::common::Length> const&)
Line
Count
Source
250
1.01k
    inline optional(const optional &) = default;
251
    inline optional(optional &&other) PROJ_NOEXCEPT
252
        : hasVal_(other.hasVal_),
253
          // cppcheck-suppress functionStatic
254
          val_(std::forward<T>(other.val_)) {
255
        other.hasVal_ = false;
256
    }
257
258
1.07M
    inline optional &operator=(const T &val) {
259
1.07M
        hasVal_ = true;
260
1.07M
        val_ = val;
261
1.07M
        return *this;
262
1.07M
    }
osgeo::proj::util::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator=(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Line
Count
Source
258
1.07M
    inline optional &operator=(const T &val) {
259
1.07M
        hasVal_ = true;
260
1.07M
        val_ = val;
261
1.07M
        return *this;
262
1.07M
    }
Unexecuted instantiation: osgeo::proj::util::optional<osgeo::proj::metadata::Citation>::operator=(osgeo::proj::metadata::Citation const&)
Unexecuted instantiation: osgeo::proj::util::optional<osgeo::proj::datum::RealizationMethod>::operator=(osgeo::proj::datum::RealizationMethod const&)
263
7.47k
    inline optional &operator=(T &&val) noexcept {
264
7.47k
        hasVal_ = true;
265
7.47k
        val_ = std::forward<T>(val);
266
7.47k
        return *this;
267
7.47k
    }
osgeo::proj::util::optional<osgeo::proj::metadata::Citation>::operator=(osgeo::proj::metadata::Citation&&)
Line
Count
Source
263
6.79k
    inline optional &operator=(T &&val) noexcept {
264
6.79k
        hasVal_ = true;
265
6.79k
        val_ = std::forward<T>(val);
266
6.79k
        return *this;
267
6.79k
    }
osgeo::proj::util::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator=(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&)
Line
Count
Source
263
684
    inline optional &operator=(T &&val) noexcept {
264
684
        hasVal_ = true;
265
684
        val_ = std::forward<T>(val);
266
684
        return *this;
267
684
    }
osgeo::proj::util::optional<double>::operator=(double&&)
Line
Count
Source
263
2
    inline optional &operator=(T &&val) noexcept {
264
2
        hasVal_ = true;
265
2
        val_ = std::forward<T>(val);
266
2
        return *this;
267
2
    }
Unexecuted instantiation: osgeo::proj::util::optional<osgeo::proj::common::DateTime>::operator=(osgeo::proj::common::DateTime&&)
268
46.9k
    inline optional &operator=(const optional &) = default;
osgeo::proj::util::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator=(osgeo::proj::util::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&)
Line
Count
Source
268
46.4k
    inline optional &operator=(const optional &) = default;
osgeo::proj::util::optional<osgeo::proj::cs::RangeMeaning>::operator=(osgeo::proj::util::optional<osgeo::proj::cs::RangeMeaning> const&)
Line
Count
Source
268
455
    inline optional &operator=(const optional &) = default;
269
0
    inline optional &operator=(optional &&other) noexcept {
270
0
        hasVal_ = other.hasVal_;
271
0
        val_ = std::forward<T>(other.val_);
272
0
        other.hasVal_ = false;
273
0
        return *this;
274
0
    }
275
276
416k
    inline T *operator->() { return &val_; }
osgeo::proj::util::optional<osgeo::proj::common::DataEpoch>::operator->()
Line
Count
Source
276
15
    inline T *operator->() { return &val_; }
Unexecuted instantiation: osgeo::proj::util::optional<osgeo::proj::common::Measure>::operator->()
osgeo::proj::util::optional<osgeo::proj::common::Scale>::operator->()
Line
Count
Source
276
415k
    inline T *operator->() { return &val_; }
osgeo::proj::util::optional<osgeo::proj::common::Length>::operator->()
Line
Count
Source
276
1.20k
    inline T *operator->() { return &val_; }
Unexecuted instantiation: osgeo::proj::util::optional<osgeo::proj::cs::RangeMeaning>::operator->()
277
5.63k
    inline T &operator*() { return val_; }
Unexecuted instantiation: osgeo::proj::util::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator*()
osgeo::proj::util::optional<osgeo::proj::common::Length>::operator*()
Line
Count
Source
277
5.63k
    inline T &operator*() { return val_; }
Unexecuted instantiation: osgeo::proj::util::optional<double>::operator*()
278
279
    //! @endcond
280
281
    /** Returns a pointer to the contained value. */
282
184k
    inline const T *operator->() const { return &val_; }
Unexecuted instantiation: osgeo::proj::util::optional<osgeo::proj::metadata::Citation>::operator->() const
osgeo::proj::util::optional<osgeo::proj::common::Length>::operator->() const
Line
Count
Source
282
2.27k
    inline const T *operator->() const { return &val_; }
osgeo::proj::util::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator->() const
Line
Count
Source
282
624
    inline const T *operator->() const { return &val_; }
Unexecuted instantiation: osgeo::proj::util::optional<osgeo::proj::common::DateTime>::operator->() const
Unexecuted instantiation: osgeo::proj::util::optional<osgeo::proj::common::Measure>::operator->() const
osgeo::proj::util::optional<osgeo::proj::common::DataEpoch>::operator->() const
Line
Count
Source
282
13
    inline const T *operator->() const { return &val_; }
osgeo::proj::util::optional<osgeo::proj::common::Scale>::operator->() const
Line
Count
Source
282
161k
    inline const T *operator->() const { return &val_; }
osgeo::proj::util::optional<osgeo::proj::datum::RealizationMethod>::operator->() const
Line
Count
Source
282
19.4k
    inline const T *operator->() const { return &val_; }
283
284
    /** Returns a reference to the contained value. */
285
3.28M
    inline const T &operator*() const { return val_; }
osgeo::proj::util::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator*() const
Line
Count
Source
285
3.12M
    inline const T &operator*() const { return val_; }
Unexecuted instantiation: osgeo::proj::util::optional<osgeo::proj::common::DataEpoch>::operator*() const
osgeo::proj::util::optional<osgeo::proj::common::Length>::operator*() const
Line
Count
Source
285
2.68k
    inline const T &operator*() const { return val_; }
osgeo::proj::util::optional<osgeo::proj::common::Scale>::operator*() const
Line
Count
Source
285
161k
    inline const T &operator*() const { return val_; }
Unexecuted instantiation: osgeo::proj::util::optional<osgeo::proj::datum::RealizationMethod>::operator*() const
286
287
    /** Return whether the optional has a value */
288
0
    inline explicit operator bool() const noexcept { return hasVal_; }
289
290
    /** Return whether the optional has a value */
291
2.36M
    inline bool has_value() const noexcept { return hasVal_; }
osgeo::proj::util::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::has_value() const
Line
Count
Source
291
354k
    inline bool has_value() const noexcept { return hasVal_; }
Unexecuted instantiation: osgeo::proj::util::optional<osgeo::proj::metadata::Citation>::has_value() const
osgeo::proj::util::optional<osgeo::proj::common::Length>::has_value() const
Line
Count
Source
291
1.06M
    inline bool has_value() const noexcept { return hasVal_; }
osgeo::proj::util::optional<osgeo::proj::common::DateTime>::has_value() const
Line
Count
Source
291
17.7k
    inline bool has_value() const noexcept { return hasVal_; }
Unexecuted instantiation: osgeo::proj::util::optional<osgeo::proj::common::Measure>::has_value() const
osgeo::proj::util::optional<osgeo::proj::common::DataEpoch>::has_value() const
Line
Count
Source
291
60.5k
    inline bool has_value() const noexcept { return hasVal_; }
osgeo::proj::util::optional<osgeo::proj::common::Scale>::has_value() const
Line
Count
Source
291
773k
    inline bool has_value() const noexcept { return hasVal_; }
osgeo::proj::util::optional<osgeo::proj::datum::RealizationMethod>::has_value() const
Line
Count
Source
291
92.3k
    inline bool has_value() const noexcept { return hasVal_; }
Unexecuted instantiation: osgeo::proj::util::optional<double>::has_value() const
Unexecuted instantiation: osgeo::proj::util::optional<osgeo::proj::cs::RangeMeaning>::has_value() const
292
293
  private:
294
    bool hasVal_;
295
    T val_{};
296
};
297
298
// ---------------------------------------------------------------------------
299
300
class BaseObject;
301
/** Shared pointer of BaseObject. */
302
using BaseObjectPtr = std::shared_ptr<BaseObject>;
303
#if 1
304
/** Non-null shared pointer of BaseObject. */
305
struct BaseObjectNNPtr : public util::nn<BaseObjectPtr> {
306
    // This trick enables to avoid inlining of the destructor.
307
    // This is mostly an alias of the base class.
308
    //! @cond Doxygen_Suppress
309
    template <class T>
310
    // cppcheck-suppress noExplicitConstructor
311
    BaseObjectNNPtr(const util::nn<std::shared_ptr<T>> &x)
312
1.91M
        : util::nn<BaseObjectPtr>(x) {}
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::util::BoxedValue>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::util::BoxedValue> > const&)
Line
Count
Source
312
1.34M
        : util::nn<BaseObjectPtr>(x) {}
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::metadata::Extent>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::metadata::Extent> > const&)
Line
Count
Source
312
1.93k
        : util::nn<BaseObjectPtr>(x) {}
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::operation::Transformation>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Transformation> > const&)
Line
Count
Source
312
41.6k
        : util::nn<BaseObjectPtr>(x) {}
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::common::ObjectDomain>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::common::ObjectDomain> > const&)
Line
Count
Source
312
12.3k
        : util::nn<BaseObjectPtr>(x) {}
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::operation::Conversion>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Conversion> > const&)
Line
Count
Source
312
43.9k
        : util::nn<BaseObjectPtr>(x) {}
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::CRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CRS> > const&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::datum::Ellipsoid>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::Ellipsoid> > const&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::datum::PrimeMeridian>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::PrimeMeridian> > const&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::SingleCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::SingleCRS> > const&)
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::GeographicCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::GeographicCRS> > const&)
Line
Count
Source
312
64.8k
        : util::nn<BaseObjectPtr>(x) {}
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::GeodeticCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::GeodeticCRS> > const&)
Line
Count
Source
312
5.91k
        : util::nn<BaseObjectPtr>(x) {}
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::DerivedGeographicCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedGeographicCRS> > const&)
Line
Count
Source
312
2.73k
        : util::nn<BaseObjectPtr>(x) {}
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::VerticalCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::VerticalCRS> > const&)
Line
Count
Source
312
33.7k
        : util::nn<BaseObjectPtr>(x) {}
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::CompoundCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CompoundCRS> > const&)
Line
Count
Source
312
17.9k
        : util::nn<BaseObjectPtr>(x) {}
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::common::IdentifiedObject>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::common::IdentifiedObject> > const&)
Line
Count
Source
312
7.61k
        : util::nn<BaseObjectPtr>(x) {}
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::datum::Datum>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::Datum> > const&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::cs::CoordinateSystem>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystem> > const&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::operation::CoordinateOperation>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::CoordinateOperation> > const&)
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::operation::ConcatenatedOperation>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::ConcatenatedOperation> > const&)
Line
Count
Source
312
17.8k
        : util::nn<BaseObjectPtr>(x) {}
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::operation::InverseConversion>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::InverseConversion> > const&)
Line
Count
Source
312
8.94k
        : util::nn<BaseObjectPtr>(x) {}
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::operation::PROJBasedOperation>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::PROJBasedOperation> > const&)
Line
Count
Source
312
36.0k
        : util::nn<BaseObjectPtr>(x) {}
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::operation::OperationMethod>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::OperationMethod> > const&)
Line
Count
Source
312
115k
        : util::nn<BaseObjectPtr>(x) {}
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::operation::OperationParameter>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::OperationParameter> > const&)
Line
Count
Source
312
114k
        : util::nn<BaseObjectPtr>(x) {}
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::operation::PointMotionOperation>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::PointMotionOperation> > const&)
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::operation::InverseTransformation>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::InverseTransformation> > const&)
Line
Count
Source
312
2.51k
        : util::nn<BaseObjectPtr>(x) {}
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::coordinates::CoordinateMetadata>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::coordinates::CoordinateMetadata> > const&)
Line
Count
Source
312
68
        : util::nn<BaseObjectPtr>(x) {}
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::ProjectedCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::ProjectedCRS> > const&)
Line
Count
Source
312
18.0k
        : util::nn<BaseObjectPtr>(x) {}
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::BoundCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::BoundCRS> > const&)
Line
Count
Source
312
20.3k
        : util::nn<BaseObjectPtr>(x) {}
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::DerivedGeodeticCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedGeodeticCRS> > const&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::DerivedProjectedCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedProjectedCRS> > const&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::TemporalCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::TemporalCRS> > const&)
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::EngineeringCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::EngineeringCRS> > const&)
Line
Count
Source
312
2.08k
        : util::nn<BaseObjectPtr>(x) {}
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::ParametricCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::ParametricCRS> > const&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::DerivedVerticalCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedVerticalCRS> > const&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedEngineeringCRSTraits> >(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedEngineeringCRSTraits> > > const&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedParametricCRSTraits> >(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedParametricCRSTraits> > > const&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedTemporalCRSTraits> >(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedTemporalCRSTraits> > > const&)
313
314
    template <class T>
315
    // cppcheck-suppress noExplicitConstructor
316
    BaseObjectNNPtr(util::nn<std::shared_ptr<T>> &&x) noexcept
317
236k
        : util::nn<BaseObjectPtr>(NN_NO_CHECK(std::move(x.as_nullable()))) {}
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::util::BaseObject>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::util::BaseObject> >&&)
Line
Count
Source
317
219k
        : util::nn<BaseObjectPtr>(NN_NO_CHECK(std::move(x.as_nullable()))) {}
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::util::BoxedValue>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::util::BoxedValue> >&&)
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::CRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CRS> >&&)
Line
Count
Source
317
458
        : util::nn<BaseObjectPtr>(NN_NO_CHECK(std::move(x.as_nullable()))) {}
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::operation::CoordinateOperation>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::CoordinateOperation> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::datum::Datum>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::Datum> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::common::IdentifiedObject>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::common::IdentifiedObject> >&&)
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::metadata::Identifier>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::metadata::Identifier> >&&)
Line
Count
Source
317
10.7k
        : util::nn<BaseObjectPtr>(NN_NO_CHECK(std::move(x.as_nullable()))) {}
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::common::ObjectDomain>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::common::ObjectDomain> >&&)
Line
Count
Source
317
321
        : util::nn<BaseObjectPtr>(NN_NO_CHECK(std::move(x.as_nullable()))) {}
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::GeographicCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::GeographicCRS> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::GeodeticCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::GeodeticCRS> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::ProjectedCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::ProjectedCRS> >&&)
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::VerticalCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::VerticalCRS> >&&)
Line
Count
Source
317
35
        : util::nn<BaseObjectPtr>(NN_NO_CHECK(std::move(x.as_nullable()))) {}
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::CompoundCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::CompoundCRS> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::BoundCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::BoundCRS> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::EngineeringCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::EngineeringCRS> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::ParametricCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::ParametricCRS> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::TemporalCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::TemporalCRS> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::DerivedGeodeticCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedGeodeticCRS> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::DerivedGeographicCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedGeographicCRS> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::DerivedProjectedCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedProjectedCRS> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::DerivedVerticalCRS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedVerticalCRS> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedEngineeringCRSTraits> >(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedEngineeringCRSTraits> > >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedParametricCRSTraits> >(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedParametricCRSTraits> > >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedTemporalCRSTraits> >(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::crs::DerivedCRSTemplate<osgeo::proj::crs::DerivedTemporalCRSTraits> > >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::datum::DatumEnsemble>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::DatumEnsemble> >&&)
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::datum::GeodeticReferenceFrame>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::GeodeticReferenceFrame> >&&)
Line
Count
Source
317
55
        : util::nn<BaseObjectPtr>(NN_NO_CHECK(std::move(x.as_nullable()))) {}
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::datum::VerticalReferenceFrame>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::VerticalReferenceFrame> >&&)
Line
Count
Source
317
18
        : util::nn<BaseObjectPtr>(NN_NO_CHECK(std::move(x.as_nullable()))) {}
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::datum::DynamicGeodeticReferenceFrame>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::DynamicGeodeticReferenceFrame> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::datum::DynamicVerticalReferenceFrame>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::DynamicVerticalReferenceFrame> >&&)
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::datum::EngineeringDatum>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::EngineeringDatum> >&&)
Line
Count
Source
317
112
        : util::nn<BaseObjectPtr>(NN_NO_CHECK(std::move(x.as_nullable()))) {}
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::datum::ParametricDatum>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::ParametricDatum> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::datum::TemporalDatum>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::TemporalDatum> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::datum::Ellipsoid>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::Ellipsoid> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::datum::PrimeMeridian>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::datum::PrimeMeridian> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::cs::CoordinateSystem>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystem> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::operation::Conversion>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Conversion> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::operation::Transformation>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Transformation> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::operation::PointMotionOperation>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::PointMotionOperation> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::operation::ConcatenatedOperation>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::ConcatenatedOperation> >&&)
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::coordinates::CoordinateMetadata>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::coordinates::CoordinateMetadata> >&&)
Line
Count
Source
317
47
        : util::nn<BaseObjectPtr>(NN_NO_CHECK(std::move(x.as_nullable()))) {}
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::cs::CoordinateSystemAxis>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CoordinateSystemAxis> >&&)
osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::operation::SingleOperation>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::SingleOperation> >&&)
Line
Count
Source
317
5.41k
        : util::nn<BaseObjectPtr>(NN_NO_CHECK(std::move(x.as_nullable()))) {}
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::cs::CartesianCS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::CartesianCS> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::cs::EllipsoidalCS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::EllipsoidalCS> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::cs::VerticalCS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::VerticalCS> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::cs::ParametricCS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::ParametricCS> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::cs::OrdinalCS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::OrdinalCS> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::cs::DateTimeTemporalCS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::DateTimeTemporalCS> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::cs::TemporalCountCS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::TemporalCountCS> >&&)
Unexecuted instantiation: osgeo::proj::util::BaseObjectNNPtr::BaseObjectNNPtr<osgeo::proj::cs::TemporalMeasureCS>(dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::cs::TemporalMeasureCS> >&&)
318
319
    explicit BaseObjectNNPtr(::dropbox::oxygen::i_promise_i_checked_for_null_t,
320
                             BaseObjectPtr &&arg) noexcept
321
        : util::nn<BaseObjectPtr>(i_promise_i_checked_for_null,
322
49.7k
                                  std::move(arg)) {}
323
664k
    BaseObjectNNPtr(const BaseObjectNNPtr &) = default;
324
10.9k
    BaseObjectNNPtr &operator=(const BaseObjectNNPtr &) = default;
325
326
    PROJ_DLL ~BaseObjectNNPtr();
327
    //! @endcond
328
};
329
#else
330
using BaseObjectNNPtr = util::nn<BaseObjectPtr>;
331
#endif
332
333
/** \brief Class that can be derived from, to emulate Java's Object behavior.
334
 */
335
class PROJ_GCC_DLL BaseObject {
336
  public:
337
    //! @cond Doxygen_Suppress
338
    virtual PROJ_DLL ~BaseObject();
339
    //! @endcond
340
341
    PROJ_PRIVATE :
342
        //! @cond Doxygen_Suppress
343
        PROJ_INTERNAL BaseObjectNNPtr
344
        shared_from_this() const;
345
    //! @endcond
346
347
  protected:
348
    PROJ_INTERNAL BaseObject();
349
    PROJ_INTERNAL void assignSelf(const BaseObjectNNPtr &self);
350
    PROJ_INTERNAL BaseObject &operator=(BaseObject &&other);
351
352
  private:
353
    PROJ_OPAQUE_PRIVATE_DATA
354
};
355
356
// ---------------------------------------------------------------------------
357
358
/** \brief Interface for an object that can be compared to another.
359
 */
360
class PROJ_GCC_DLL IComparable {
361
  public:
362
    //! @cond Doxygen_Suppress
363
    PROJ_DLL virtual ~IComparable();
364
    //! @endcond
365
366
    /** \brief Comparison criterion. */
367
    enum class PROJ_MSVC_DLL Criterion {
368
        /** All properties are identical. */
369
        STRICT,
370
371
        /** The objects are equivalent for the purpose of coordinate
372
         * operations. They can differ by the name of their objects,
373
         * identifiers, other metadata.
374
         * Parameters may be expressed in different units, provided that the
375
         * value is (with some tolerance) the same once expressed in a
376
         * common unit.
377
         */
378
        EQUIVALENT,
379
380
        /** Same as EQUIVALENT, relaxed with an exception that the axis order
381
         * of the base CRS of a DerivedCRS/ProjectedCRS or the axis order of
382
         * a GeographicCRS is ignored. Only to be used
383
         * with DerivedCRS/ProjectedCRS/GeographicCRS */
384
        EQUIVALENT_EXCEPT_AXIS_ORDER_GEOGCRS,
385
    };
386
387
    PROJ_DLL bool
388
    isEquivalentTo(const IComparable *other,
389
                   Criterion criterion = Criterion::STRICT,
390
                   const io::DatabaseContextPtr &dbContext = nullptr) const;
391
392
    PROJ_PRIVATE :
393
394
        //! @cond Doxygen_Suppress
395
        PROJ_INTERNAL virtual bool
396
        _isEquivalentTo(
397
            const IComparable *other, Criterion criterion = Criterion::STRICT,
398
            const io::DatabaseContextPtr &dbContext = nullptr) const = 0;
399
    //! @endcond
400
};
401
402
// ---------------------------------------------------------------------------
403
404
/** \brief Encapsulate standard datatypes in an object.
405
 */
406
class BoxedValue final : public BaseObject {
407
  public:
408
    //! @cond Doxygen_Suppress
409
    /** Type of data stored in the BoxedValue. */
410
    enum class Type {
411
        /** a std::string */
412
        STRING,
413
        /** an integer */
414
        INTEGER,
415
        /** a boolean */
416
        BOOLEAN
417
    };
418
    //! @endcond
419
420
    // cppcheck-suppress noExplicitConstructor
421
    PROJ_DLL BoxedValue(const char *stringValueIn); // needed to avoid the bool
422
                                                    // constructor to be taken !
423
    // cppcheck-suppress noExplicitConstructor
424
    PROJ_DLL BoxedValue(const std::string &stringValueIn);
425
    // cppcheck-suppress noExplicitConstructor
426
    PROJ_DLL BoxedValue(int integerValueIn);
427
    // cppcheck-suppress noExplicitConstructor
428
    PROJ_DLL BoxedValue(bool booleanValueIn);
429
430
    PROJ_PRIVATE :
431
        //! @cond Doxygen_Suppress
432
        PROJ_INTERNAL
433
        BoxedValue(const BoxedValue &other);
434
435
    PROJ_DLL ~BoxedValue() override;
436
437
    PROJ_INTERNAL const Type &type() const;
438
    PROJ_INTERNAL const std::string &stringValue() const;
439
    PROJ_INTERNAL int integerValue() const;
440
    PROJ_INTERNAL bool booleanValue() const;
441
    //! @endcond
442
443
  private:
444
    PROJ_OPAQUE_PRIVATE_DATA
445
    BoxedValue &operator=(const BoxedValue &) = delete;
446
447
    PROJ_INTERNAL BoxedValue();
448
};
449
450
/** Shared pointer of BoxedValue. */
451
using BoxedValuePtr = std::shared_ptr<BoxedValue>;
452
/** Non-null shared pointer of BoxedValue. */
453
using BoxedValueNNPtr = util::nn<BoxedValuePtr>;
454
455
// ---------------------------------------------------------------------------
456
457
class ArrayOfBaseObject;
458
/** Shared pointer of ArrayOfBaseObject. */
459
using ArrayOfBaseObjectPtr = std::shared_ptr<ArrayOfBaseObject>;
460
/** Non-null shared pointer of ArrayOfBaseObject. */
461
using ArrayOfBaseObjectNNPtr = util::nn<ArrayOfBaseObjectPtr>;
462
463
/** \brief Array of BaseObject.
464
 */
465
class ArrayOfBaseObject final : public BaseObject {
466
  public:
467
    //! @cond Doxygen_Suppress
468
    PROJ_DLL ~ArrayOfBaseObject() override;
469
    //! @endcond
470
471
    PROJ_DLL void add(const BaseObjectNNPtr &obj);
472
473
    PROJ_DLL static ArrayOfBaseObjectNNPtr create();
474
475
    PROJ_PRIVATE :
476
        //! @cond Doxygen_Suppress
477
        std::vector<BaseObjectNNPtr>::const_iterator
478
        begin() const;
479
    std::vector<BaseObjectNNPtr>::const_iterator end() const;
480
    bool empty() const;
481
    //! @endcond
482
483
  protected:
484
    ArrayOfBaseObject();
485
    INLINED_MAKE_SHARED
486
487
  private:
488
    ArrayOfBaseObject(const ArrayOfBaseObject &other) = delete;
489
    ArrayOfBaseObject &operator=(const ArrayOfBaseObject &other) = delete;
490
    PROJ_OPAQUE_PRIVATE_DATA
491
};
492
493
// ---------------------------------------------------------------------------
494
495
/** \brief Wrapper of a std::map<std::string, BaseObjectNNPtr> */
496
class PropertyMap {
497
  public:
498
    PROJ_DLL PropertyMap();
499
    //! @cond Doxygen_Suppress
500
    PROJ_DLL PropertyMap(const PropertyMap &other);
501
    PROJ_DLL ~PropertyMap();
502
    //! @endcond
503
504
    PROJ_DLL PropertyMap &set(const std::string &key,
505
                              const BaseObjectNNPtr &val);
506
507
    //! @cond Doxygen_Suppress
508
    template <class T>
509
    inline PropertyMap &set(const std::string &key,
510
49.7k
                            const nn_shared_ptr<T> &val) {
511
49.7k
        return set(
512
49.7k
            key, BaseObjectNNPtr(i_promise_i_checked_for_null,
513
49.7k
                                 BaseObjectPtr(val.as_nullable(), val.get())));
514
49.7k
    }
osgeo::proj::util::PropertyMap& osgeo::proj::util::PropertyMap::set<osgeo::proj::util::ArrayOfBaseObject>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::util::ArrayOfBaseObject> > const&)
Line
Count
Source
510
19.0k
                            const nn_shared_ptr<T> &val) {
511
19.0k
        return set(
512
19.0k
            key, BaseObjectNNPtr(i_promise_i_checked_for_null,
513
19.0k
                                 BaseObjectPtr(val.as_nullable(), val.get())));
514
19.0k
    }
osgeo::proj::util::PropertyMap& osgeo::proj::util::PropertyMap::set<osgeo::proj::common::ObjectDomain>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::common::ObjectDomain> > const&)
Line
Count
Source
510
1.87k
                            const nn_shared_ptr<T> &val) {
511
1.87k
        return set(
512
1.87k
            key, BaseObjectNNPtr(i_promise_i_checked_for_null,
513
1.87k
                                 BaseObjectPtr(val.as_nullable(), val.get())));
514
1.87k
    }
osgeo::proj::util::PropertyMap& osgeo::proj::util::PropertyMap::set<osgeo::proj::operation::Transformation>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::operation::Transformation> > const&)
Line
Count
Source
510
285
                            const nn_shared_ptr<T> &val) {
511
285
        return set(
512
285
            key, BaseObjectNNPtr(i_promise_i_checked_for_null,
513
285
                                 BaseObjectPtr(val.as_nullable(), val.get())));
514
285
    }
osgeo::proj::util::PropertyMap& osgeo::proj::util::PropertyMap::set<osgeo::proj::metadata::Extent>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::metadata::Extent> > const&)
Line
Count
Source
510
28.3k
                            const nn_shared_ptr<T> &val) {
511
28.3k
        return set(
512
28.3k
            key, BaseObjectNNPtr(i_promise_i_checked_for_null,
513
28.3k
                                 BaseObjectPtr(val.as_nullable(), val.get())));
514
28.3k
    }
osgeo::proj::util::PropertyMap& osgeo::proj::util::PropertyMap::set<osgeo::proj::util::BaseObject>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::util::BaseObject> > const&)
Line
Count
Source
510
148
                            const nn_shared_ptr<T> &val) {
511
148
        return set(
512
148
            key, BaseObjectNNPtr(i_promise_i_checked_for_null,
513
148
                                 BaseObjectPtr(val.as_nullable(), val.get())));
514
148
    }
Unexecuted instantiation: osgeo::proj::util::PropertyMap& osgeo::proj::util::PropertyMap::set<osgeo::proj::metadata::Identifier>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, dropbox::oxygen::nn<std::__1::shared_ptr<osgeo::proj::metadata::Identifier> > const&)
515
    //! @endcond
516
517
    // needed to avoid the bool constructor to be taken !
518
    PROJ_DLL PropertyMap &set(const std::string &key, const char *val);
519
520
    PROJ_DLL PropertyMap &set(const std::string &key, const std::string &val);
521
522
    PROJ_DLL PropertyMap &set(const std::string &key, int val);
523
524
    PROJ_DLL PropertyMap &set(const std::string &key, bool val);
525
526
    PROJ_DLL PropertyMap &set(const std::string &key,
527
                              const std::vector<std::string> &array);
528
529
    PROJ_PRIVATE :
530
        //! @cond Doxygen_Suppress
531
        const BaseObjectNNPtr *
532
        get(const std::string &key) const;
533
534
    // throw(InvalidValueTypeException)
535
    bool getStringValue(const std::string &key, std::string &outVal) const;
536
    bool getStringValue(const std::string &key,
537
                        optional<std::string> &outVal) const;
538
    void unset(const std::string &key);
539
540
    static PropertyMap createAndSetName(const char *name);
541
    static PropertyMap createAndSetName(const std::string &name);
542
    //! @endcond
543
544
  private:
545
    PropertyMap &operator=(const PropertyMap &) = delete;
546
547
    PROJ_OPAQUE_PRIVATE_DATA
548
};
549
550
// ---------------------------------------------------------------------------
551
552
class LocalName;
553
/** Shared pointer of LocalName. */
554
using LocalNamePtr = std::shared_ptr<LocalName>;
555
/** Non-null shared pointer of LocalName. */
556
using LocalNameNNPtr = util::nn<LocalNamePtr>;
557
558
class NameSpace;
559
/** Shared pointer of NameSpace. */
560
using NameSpacePtr = std::shared_ptr<NameSpace>;
561
/** Non-null shared pointer of NameSpace. */
562
using NameSpaceNNPtr = util::nn<NameSpacePtr>;
563
564
class GenericName;
565
/** Shared pointer of GenericName. */
566
using GenericNamePtr = std::shared_ptr<GenericName>;
567
/** Non-null shared pointer of GenericName. */
568
using GenericNameNNPtr = util::nn<GenericNamePtr>;
569
570
// ---------------------------------------------------------------------------
571
572
/** \brief A sequence of identifiers rooted within the context of a namespace.
573
 *
574
 * \remark Simplified version of [GenericName]
575
 * (http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/GenericName.html)
576
 * from \ref GeoAPI
577
 */
578
class GenericName : public BaseObject {
579
  public:
580
    //! @cond Doxygen_Suppress
581
    PROJ_DLL virtual ~GenericName() override;
582
    //! @endcond
583
584
    /** \brief Return the scope of the object, possibly a global one. */
585
    PROJ_DLL virtual const NameSpacePtr scope() const = 0;
586
587
    /** \brief Return the LocalName as a string. */
588
    PROJ_DLL virtual std::string toString() const = 0;
589
590
    /** \brief Return a fully qualified name corresponding to the local name.
591
     *
592
     * The namespace of the resulting name is a global one.
593
     */
594
    PROJ_DLL virtual GenericNameNNPtr toFullyQualifiedName() const = 0;
595
596
  protected:
597
    GenericName();
598
    GenericName(const GenericName &other);
599
600
  private:
601
    PROJ_OPAQUE_PRIVATE_DATA
602
    GenericName &operator=(const GenericName &other) = delete;
603
};
604
605
// ---------------------------------------------------------------------------
606
607
/** \brief A domain in which names given by strings are defined.
608
 *
609
 * \remark Simplified version of [NameSpace]
610
 * (http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/NameSpace.html)
611
 * from \ref GeoAPI
612
 */
613
class NameSpace {
614
  public:
615
    //! @cond Doxygen_Suppress
616
    PROJ_DLL ~NameSpace();
617
    //! @endcond
618
619
    PROJ_DLL bool isGlobal() const;
620
    PROJ_DLL const GenericNamePtr &name() const;
621
622
  protected:
623
    PROJ_FRIEND(NameFactory);
624
    PROJ_FRIEND(LocalName);
625
    explicit NameSpace(const GenericNamePtr &name);
626
    NameSpace(const NameSpace &other);
627
    NameSpaceNNPtr getGlobalFromThis() const;
628
    const std::string &separator() const;
629
    static const NameSpaceNNPtr GLOBAL;
630
    INLINED_MAKE_SHARED
631
632
  private:
633
    PROJ_OPAQUE_PRIVATE_DATA
634
    NameSpace &operator=(const NameSpace &other) = delete;
635
636
    static NameSpaceNNPtr createGLOBAL();
637
};
638
639
// ---------------------------------------------------------------------------
640
641
/** \brief Identifier within a NameSpace for a local object.
642
 *
643
 * Local names are names which are directly accessible to and maintained by a
644
 * NameSpace within which they are local, indicated by the scope.
645
 *
646
 * \remark Simplified version of [LocalName]
647
 * (http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/LocalName.html)
648
 * from \ref GeoAPI
649
 */
650
class LocalName : public GenericName {
651
  public:
652
    //! @cond Doxygen_Suppress
653
    PROJ_DLL ~LocalName() override;
654
    //! @endcond
655
656
    PROJ_DLL const NameSpacePtr scope() const override;
657
    PROJ_DLL std::string toString() const override;
658
    PROJ_DLL GenericNameNNPtr toFullyQualifiedName() const override;
659
660
  protected:
661
    PROJ_FRIEND(NameFactory);
662
    PROJ_FRIEND(NameSpace);
663
    explicit LocalName(const std::string &nameIn);
664
    LocalName(const LocalName &other);
665
    LocalName(const NameSpacePtr &ns, const std::string &name);
666
    INLINED_MAKE_SHARED
667
668
  private:
669
    PROJ_OPAQUE_PRIVATE_DATA
670
    LocalName &operator=(const LocalName &other) = delete;
671
};
672
673
// ---------------------------------------------------------------------------
674
675
/** \brief Factory for generic names.
676
 *
677
 * \remark Simplified version of [NameFactory]
678
 * (http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/NameFactory.html)
679
 * from \ref GeoAPI
680
 */
681
class NameFactory {
682
  public:
683
    PROJ_DLL static NameSpaceNNPtr
684
    createNameSpace(const GenericNameNNPtr &name,
685
                    const PropertyMap &properties);
686
    PROJ_DLL static LocalNameNNPtr createLocalName(const NameSpacePtr &scope,
687
                                                   const std::string &name);
688
    PROJ_DLL static GenericNameNNPtr
689
    createGenericName(const NameSpacePtr &scope,
690
                      const std::vector<std::string> &parsedNames);
691
};
692
693
// ---------------------------------------------------------------------------
694
695
/** \brief Abstract class to define an enumeration of values.
696
 */
697
class CodeList {
698
  public:
699
    //! @cond Doxygen_Suppress
700
    PROJ_DLL ~CodeList();
701
    //! @endcond
702
703
    /** Return the CodeList item as a string. */
704
    // cppcheck-suppress functionStatic
705
20.2k
    inline const std::string &toString() PROJ_PURE_DECL { return name_; }
706
707
    /** Return the CodeList item as a string. */
708
0
    inline operator std::string() PROJ_PURE_DECL { return toString(); }
709
710
    //! @cond Doxygen_Suppress
711
197k
    inline bool operator==(const CodeList &other) PROJ_PURE_DECL {
712
197k
        return name_ == other.name_;
713
197k
    }
714
164
    inline bool operator!=(const CodeList &other) PROJ_PURE_DECL {
715
164
        return name_ != other.name_;
716
164
    }
717
    //! @endcond
718
  protected:
719
370k
    explicit CodeList(const std::string &nameIn) : name_(nameIn) {}
720
0
    CodeList(const CodeList &) = default;
721
    CodeList &operator=(const CodeList &other);
722
723
  private:
724
    std::string name_{};
725
};
726
727
// ---------------------------------------------------------------------------
728
729
/** \brief Root exception class.
730
 */
731
class PROJ_GCC_DLL Exception : public std::exception {
732
    std::string msg_;
733
734
  public:
735
    //! @cond Doxygen_Suppress
736
    PROJ_INTERNAL explicit Exception(const char *message);
737
    PROJ_INTERNAL explicit Exception(const std::string &message);
738
    PROJ_DLL Exception(const Exception &other);
739
    PROJ_DLL ~Exception() override;
740
    //! @endcond
741
    PROJ_DLL virtual const char *what() const noexcept override;
742
};
743
744
// ---------------------------------------------------------------------------
745
746
/** \brief Exception thrown when an invalid value type is set as the value of
747
 * a key of a PropertyMap.
748
 */
749
class PROJ_GCC_DLL InvalidValueTypeException : public Exception {
750
  public:
751
    //! @cond Doxygen_Suppress
752
    PROJ_INTERNAL explicit InvalidValueTypeException(const char *message);
753
    PROJ_INTERNAL explicit InvalidValueTypeException(
754
        const std::string &message);
755
    PROJ_DLL InvalidValueTypeException(const InvalidValueTypeException &other);
756
    PROJ_DLL ~InvalidValueTypeException() override;
757
    //! @endcond
758
};
759
760
// ---------------------------------------------------------------------------
761
762
/** \brief Exception Thrown to indicate that the requested operation is not
763
 * supported.
764
 */
765
class PROJ_GCC_DLL UnsupportedOperationException : public Exception {
766
  public:
767
    //! @cond Doxygen_Suppress
768
    PROJ_INTERNAL explicit UnsupportedOperationException(const char *message);
769
    PROJ_INTERNAL explicit UnsupportedOperationException(
770
        const std::string &message);
771
    PROJ_DLL
772
    UnsupportedOperationException(const UnsupportedOperationException &other);
773
    PROJ_DLL ~UnsupportedOperationException() override;
774
    //! @endcond
775
};
776
777
} // namespace util
778
779
NS_PROJ_END
780
781
#endif // UTIL_HH_INCLUDED