diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2019-01-17 21:15:24 +0100 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2019-01-17 21:15:24 +0100 |
| commit | 3fc48e6146e020b86a0ef87749cc645f9b4fa113 (patch) | |
| tree | 810b23b6de2e775eca03eafd81ff659a8a0319a0 | |
| parent | 6d2af0904652baba69ec81261c914e9b68221dac (diff) | |
| download | PROJ-3fc48e6146e020b86a0ef87749cc645f9b4fa113.tar.gz PROJ-3fc48e6146e020b86a0ef87749cc645f9b4fa113.zip | |
Remove wrong use of PROJ_CONST_DECL and replace it with PROJ_PURE_DECL (fixes #1224)
| -rw-r--r-- | include/proj/common.hpp | 34 | ||||
| -rw-r--r-- | include/proj/coordinateoperation.hpp | 34 | ||||
| -rw-r--r-- | include/proj/coordinatesystem.hpp | 16 | ||||
| -rw-r--r-- | include/proj/crs.hpp | 42 | ||||
| -rw-r--r-- | include/proj/datum.hpp | 22 | ||||
| -rw-r--r-- | include/proj/io.hpp | 2 | ||||
| -rw-r--r-- | include/proj/metadata.hpp | 42 | ||||
| -rw-r--r-- | include/proj/util.hpp | 26 | ||||
| -rw-r--r-- | src/iso19111/common.cpp | 34 | ||||
| -rw-r--r-- | src/iso19111/coordinateoperation.cpp | 34 | ||||
| -rw-r--r-- | src/iso19111/coordinatesystem.cpp | 16 | ||||
| -rw-r--r-- | src/iso19111/crs.cpp | 42 | ||||
| -rw-r--r-- | src/iso19111/datum.cpp | 22 | ||||
| -rw-r--r-- | src/iso19111/factory.cpp | 6 | ||||
| -rw-r--r-- | src/iso19111/io.cpp | 6 | ||||
| -rw-r--r-- | src/iso19111/metadata.cpp | 42 |
16 files changed, 202 insertions, 218 deletions
diff --git a/include/proj/common.hpp b/include/proj/common.hpp index 29d2c774..6a4d479e 100644 --- a/include/proj/common.hpp +++ b/include/proj/common.hpp @@ -149,14 +149,14 @@ class Measure : public util::BaseObject { PROJ_DLL ~Measure(); //! @endcond - PROJ_DLL const UnitOfMeasure &unit() PROJ_CONST_DECL; - PROJ_DLL double getSIValue() PROJ_CONST_DECL; - PROJ_DLL double value() PROJ_CONST_DECL; + PROJ_DLL const UnitOfMeasure &unit() PROJ_PURE_DECL; + PROJ_DLL double getSIValue() PROJ_PURE_DECL; + PROJ_DLL double value() PROJ_PURE_DECL; PROJ_DLL double - convertToUnit(const UnitOfMeasure &otherUnit) PROJ_CONST_DECL; + convertToUnit(const UnitOfMeasure &otherUnit) PROJ_PURE_DECL; - PROJ_DLL bool operator==(const Measure &other) PROJ_CONST_DECL; + PROJ_DLL bool operator==(const Measure &other) PROJ_PURE_DECL; /** Default maximum resulative error. */ static constexpr double DEFAULT_MAX_REL_ERROR = 1e-10; @@ -296,20 +296,20 @@ class PROJ_GCC_DLL IdentifiedObject : public util::BaseObject, PROJ_DLL static const std::string DEPRECATED_KEY; // in practice only name().description() is used - PROJ_DLL const metadata::IdentifierNNPtr &name() PROJ_CONST_DECL; - PROJ_DLL const std::string &nameStr() PROJ_CONST_DECL; + PROJ_DLL const metadata::IdentifierNNPtr &name() PROJ_PURE_DECL; + PROJ_DLL const std::string &nameStr() PROJ_PURE_DECL; PROJ_DLL const std::vector<metadata::IdentifierNNPtr> & - identifiers() PROJ_CONST_DECL; + identifiers() PROJ_PURE_DECL; PROJ_DLL const std::vector<util::GenericNameNNPtr> & - aliases() PROJ_CONST_DECL; - PROJ_DLL const std::string &remarks() PROJ_CONST_DECL; + aliases() PROJ_PURE_DECL; + PROJ_DLL const std::string &remarks() PROJ_PURE_DECL; // from Apache SIS AbstractIdentifiedObject - PROJ_DLL bool isDeprecated() PROJ_CONST_DECL; + PROJ_DLL bool isDeprecated() PROJ_PURE_DECL; // Non-standard - PROJ_DLL std::string alias() PROJ_CONST_DECL; - PROJ_DLL int getEPSGCode() PROJ_CONST_DECL; + PROJ_DLL std::string alias() PROJ_PURE_DECL; + PROJ_DLL int getEPSGCode() PROJ_PURE_DECL; PROJ_PRIVATE : //! @cond Doxygen_Suppress @@ -325,7 +325,7 @@ class PROJ_GCC_DLL IdentifiedObject : public util::BaseObject, PROJ_INTERNAL bool _isEquivalentTo(const IdentifiedObject *other, util::IComparable::Criterion criterion = - util::IComparable::Criterion::STRICT) PROJ_CONST_DECL; + util::IComparable::Criterion::STRICT) PROJ_PURE_DECL; //! @endcond protected: @@ -363,8 +363,8 @@ class ObjectDomain : public util::BaseObject, public util::IComparable { // In ISO_19111:2018, scope and domain are compulsory, but in WKT2:2015, // they // are not necessarily both specified - PROJ_DLL const util::optional<std::string> &scope() PROJ_CONST_DECL; - PROJ_DLL const metadata::ExtentPtr &domainOfValidity() PROJ_CONST_DECL; + PROJ_DLL const util::optional<std::string> &scope() PROJ_PURE_DECL; + PROJ_DLL const metadata::ExtentPtr &domainOfValidity() PROJ_PURE_DECL; PROJ_DLL static ObjectDomainNNPtr create(const util::optional<std::string> &scopeIn, @@ -414,7 +414,7 @@ class ObjectUsage : public IdentifiedObject { PROJ_DLL ~ObjectUsage() override; //! @endcond - PROJ_DLL const std::vector<ObjectDomainNNPtr> &domains() PROJ_CONST_DECL; + PROJ_DLL const std::vector<ObjectDomainNNPtr> &domains() PROJ_PURE_DECL; PROJ_DLL static const std::string SCOPE_KEY; PROJ_DLL static const std::string DOMAIN_OF_VALIDITY_KEY; diff --git a/include/proj/coordinateoperation.hpp b/include/proj/coordinateoperation.hpp index 80e04577..6b32e24d 100644 --- a/include/proj/coordinateoperation.hpp +++ b/include/proj/coordinateoperation.hpp @@ -241,7 +241,7 @@ class PROJ_GCC_DLL OperationParameter final : public GeneralOperationParameter { PROJ_DLL static OperationParameterNNPtr create(const util::PropertyMap &properties); - PROJ_DLL int getEPSGCode() PROJ_CONST_DECL; + PROJ_DLL int getEPSGCode() PROJ_PURE_DECL; PROJ_DLL static const char *getNameForEPSGCode(int epsg_code) noexcept; @@ -358,12 +358,12 @@ class PROJ_GCC_DLL ParameterValue final : public util::BaseObject, PROJ_DLL static ParameterValueNNPtr createFilename(const std::string &stringValueIn); - PROJ_DLL const Type &type() PROJ_CONST_DECL; - PROJ_DLL const common::Measure &value() PROJ_CONST_DECL; - PROJ_DLL const std::string &stringValue() PROJ_CONST_DECL; - PROJ_DLL const std::string &valueFile() PROJ_CONST_DECL; - PROJ_DLL int integerValue() PROJ_CONST_DECL; - PROJ_DLL bool booleanValue() PROJ_CONST_DECL; + PROJ_DLL const Type &type() PROJ_PURE_DECL; + PROJ_DLL const common::Measure &value() PROJ_PURE_DECL; + PROJ_DLL const std::string &stringValue() PROJ_PURE_DECL; + PROJ_DLL const std::string &valueFile() PROJ_PURE_DECL; + PROJ_DLL int integerValue() PROJ_PURE_DECL; + PROJ_DLL bool booleanValue() PROJ_PURE_DECL; //! @cond Doxygen_Suppress PROJ_INTERNAL bool @@ -406,8 +406,8 @@ class PROJ_GCC_DLL OperationParameterValue final PROJ_DLL ~OperationParameterValue() override; //! @endcond - PROJ_DLL const OperationParameterNNPtr ¶meter() PROJ_CONST_DECL; - PROJ_DLL const ParameterValueNNPtr ¶meterValue() PROJ_CONST_DECL; + PROJ_DLL const OperationParameterNNPtr ¶meter() PROJ_PURE_DECL; + PROJ_DLL const ParameterValueNNPtr ¶meterValue() PROJ_PURE_DECL; PROJ_DLL static OperationParameterValueNNPtr create(const OperationParameterNNPtr ¶meterIn, @@ -468,11 +468,11 @@ class PROJ_GCC_DLL OperationMethod : public common::IdentifiedObject { PROJ_DLL ~OperationMethod() override; //! @endcond - PROJ_DLL const util::optional<std::string> &formula() PROJ_CONST_DECL; + PROJ_DLL const util::optional<std::string> &formula() PROJ_PURE_DECL; PROJ_DLL const util::optional<metadata::Citation> & - formulaCitation() PROJ_CONST_DECL; + formulaCitation() PROJ_PURE_DECL; PROJ_DLL const std::vector<GeneralOperationParameterNNPtr> & - parameters() PROJ_CONST_DECL; + parameters() PROJ_PURE_DECL; PROJ_DLL static OperationMethodNNPtr create(const util::PropertyMap &properties, @@ -482,7 +482,7 @@ class PROJ_GCC_DLL OperationMethod : public common::IdentifiedObject { create(const util::PropertyMap &properties, const std::vector<OperationParameterNNPtr> ¶meters); - PROJ_DLL int getEPSGCode() PROJ_CONST_DECL; + PROJ_DLL int getEPSGCode() PROJ_PURE_DECL; //! @cond Doxygen_Suppress PROJ_INTERNAL void _exportToWKT(io::WKTFormatter *formatter) @@ -540,8 +540,8 @@ class PROJ_GCC_DLL SingleOperation : virtual public CoordinateOperation { //! @endcond PROJ_DLL const std::vector<GeneralParameterValueNNPtr> & - parameterValues() PROJ_CONST_DECL; - PROJ_DLL const OperationMethodNNPtr &method() PROJ_CONST_DECL; + parameterValues() PROJ_PURE_DECL; + PROJ_DLL const OperationMethodNNPtr &method() PROJ_PURE_DECL; PROJ_DLL const ParameterValuePtr & parameterValue(const std::string ¶mName, int epsg_code = 0) const @@ -1358,8 +1358,8 @@ class PROJ_GCC_DLL Transformation : public SingleOperation { PROJ_DLL ~Transformation() override; //! @endcond - PROJ_DLL const crs::CRSNNPtr &sourceCRS() PROJ_CONST_DECL; - PROJ_DLL const crs::CRSNNPtr &targetCRS() PROJ_CONST_DECL; + PROJ_DLL const crs::CRSNNPtr &sourceCRS() PROJ_PURE_DECL; + PROJ_DLL const crs::CRSNNPtr &targetCRS() PROJ_PURE_DECL; PROJ_DLL CoordinateOperationNNPtr inverse() const override; diff --git a/include/proj/coordinatesystem.hpp b/include/proj/coordinatesystem.hpp index 1a8f61cd..9216bf33 100644 --- a/include/proj/coordinatesystem.hpp +++ b/include/proj/coordinatesystem.hpp @@ -129,7 +129,7 @@ class PROJ_GCC_DLL Meridian : public common::IdentifiedObject { PROJ_DLL ~Meridian() override; //! @endcond - PROJ_DLL const common::Angle &longitude() PROJ_CONST_DECL; + PROJ_DLL const common::Angle &longitude() PROJ_PURE_DECL; // non-standard PROJ_DLL static MeridianNNPtr create(const common::Angle &longitudeIn); @@ -172,12 +172,12 @@ class PROJ_GCC_DLL CoordinateSystemAxis final PROJ_DLL ~CoordinateSystemAxis() override; //! @endcond - PROJ_DLL const std::string &abbreviation() PROJ_CONST_DECL; - PROJ_DLL const AxisDirection &direction() PROJ_CONST_DECL; - PROJ_DLL const common::UnitOfMeasure &unit() PROJ_CONST_DECL; - PROJ_DLL const util::optional<double> &minimumValue() PROJ_CONST_DECL; - PROJ_DLL const util::optional<double> &maximumValue() PROJ_CONST_DECL; - PROJ_DLL const MeridianPtr &meridian() PROJ_CONST_DECL; + PROJ_DLL const std::string &abbreviation() PROJ_PURE_DECL; + PROJ_DLL const AxisDirection &direction() PROJ_PURE_DECL; + PROJ_DLL const common::UnitOfMeasure &unit() PROJ_PURE_DECL; + PROJ_DLL const util::optional<double> &minimumValue() PROJ_PURE_DECL; + PROJ_DLL const util::optional<double> &maximumValue() PROJ_PURE_DECL; + PROJ_DLL const MeridianPtr &meridian() PROJ_PURE_DECL; // Non-standard PROJ_DLL static CoordinateSystemAxisNNPtr @@ -242,7 +242,7 @@ class PROJ_GCC_DLL CoordinateSystem : public common::IdentifiedObject { //! @endcond PROJ_DLL const std::vector<CoordinateSystemAxisNNPtr> & - axisList() PROJ_CONST_DECL; + axisList() PROJ_PURE_DECL; PROJ_PRIVATE : diff --git a/include/proj/crs.hpp b/include/proj/crs.hpp index 65414d7d..1c012666 100644 --- a/include/proj/crs.hpp +++ b/include/proj/crs.hpp @@ -97,7 +97,7 @@ class PROJ_GCC_DLL CRS : public common::ObjectUsage { bool allowIntermediateCRS) const; PROJ_DLL CRSNNPtr stripVerticalComponent() const; - PROJ_DLL const BoundCRSPtr &canonicalBoundCRS() PROJ_CONST_DECL; + PROJ_DLL const BoundCRSPtr &canonicalBoundCRS() PROJ_PURE_DECL; PROJ_DLL std::list<std::pair<CRSNNPtr, int>> identify(const io::AuthorityFactoryPtr &authorityFactory) const; @@ -156,10 +156,10 @@ class PROJ_GCC_DLL SingleCRS : public CRS { PROJ_DLL ~SingleCRS() override; //! @endcond - PROJ_DLL const datum::DatumPtr &datum() PROJ_CONST_DECL; - PROJ_DLL const datum::DatumEnsemblePtr &datumEnsemble() PROJ_CONST_DECL; + PROJ_DLL const datum::DatumPtr &datum() PROJ_PURE_DECL; + PROJ_DLL const datum::DatumEnsemblePtr &datumEnsemble() PROJ_PURE_DECL; PROJ_DLL const cs::CoordinateSystemNNPtr & - coordinateSystem() PROJ_CONST_DECL; + coordinateSystem() PROJ_PURE_DECL; PROJ_PRIVATE : //! @cond Doxygen_Suppress @@ -213,20 +213,20 @@ class PROJ_GCC_DLL GeodeticCRS : virtual public SingleCRS, PROJ_DLL ~GeodeticCRS() override; //! @endcond - PROJ_DLL const datum::GeodeticReferenceFramePtr &datum() PROJ_CONST_DECL; + PROJ_DLL const datum::GeodeticReferenceFramePtr &datum() PROJ_PURE_DECL; - PROJ_DLL const datum::PrimeMeridianNNPtr &primeMeridian() PROJ_CONST_DECL; - PROJ_DLL const datum::EllipsoidNNPtr &ellipsoid() PROJ_CONST_DECL; + PROJ_DLL const datum::PrimeMeridianNNPtr &primeMeridian() PROJ_PURE_DECL; + PROJ_DLL const datum::EllipsoidNNPtr &ellipsoid() PROJ_PURE_DECL; // coordinateSystem() returns either a EllipsoidalCS, SphericalCS or // CartesianCS PROJ_DLL const std::vector<operation::PointMotionOperationNNPtr> & - velocityModel() PROJ_CONST_DECL; + velocityModel() PROJ_PURE_DECL; // Non-standard - PROJ_DLL bool isGeocentric() PROJ_CONST_DECL; + PROJ_DLL bool isGeocentric() PROJ_PURE_DECL; PROJ_DLL static GeodeticCRSNNPtr create(const util::PropertyMap &properties, @@ -320,7 +320,7 @@ class PROJ_GCC_DLL GeographicCRS : public GeodeticCRS { PROJ_DLL ~GeographicCRS() override; //! @endcond - PROJ_DLL const cs::EllipsoidalCSNNPtr &coordinateSystem() PROJ_CONST_DECL; + PROJ_DLL const cs::EllipsoidalCSNNPtr &coordinateSystem() PROJ_PURE_DECL; // Non-standard PROJ_DLL static GeographicCRSNNPtr @@ -350,7 +350,7 @@ class PROJ_GCC_DLL GeographicCRS : public GeodeticCRS { const override; // throw(FormattingException) PROJ_DLL bool - is2DPartOf3D(util::nn<const GeographicCRS *> other) PROJ_CONST_DECL; + is2DPartOf3D(util::nn<const GeographicCRS *> other) PROJ_PURE_DECL; PROJ_INTERNAL bool _isEquivalentTo(const util::IComparable *other, @@ -410,9 +410,9 @@ class PROJ_GCC_DLL VerticalCRS : virtual public SingleCRS, PROJ_DLL const datum::VerticalReferenceFramePtr datum() const; PROJ_DLL const cs::VerticalCSNNPtr coordinateSystem() const; PROJ_DLL const std::vector<operation::TransformationNNPtr> & - geoidModel() PROJ_CONST_DECL; + geoidModel() PROJ_PURE_DECL; PROJ_DLL const std::vector<operation::PointMotionOperationNNPtr> & - velocityModel() PROJ_CONST_DECL; + velocityModel() PROJ_PURE_DECL; PROJ_DLL static VerticalCRSNNPtr create(const util::PropertyMap &properties, @@ -484,13 +484,13 @@ class PROJ_GCC_DLL DerivedCRS : virtual public SingleCRS { PROJ_DLL ~DerivedCRS() override; //! @endcond - PROJ_DLL const SingleCRSNNPtr &baseCRS() PROJ_CONST_DECL; + PROJ_DLL const SingleCRSNNPtr &baseCRS() PROJ_PURE_DECL; PROJ_DLL const operation::ConversionNNPtr derivingConversion() const; PROJ_PRIVATE : //! @cond Doxygen_Suppress PROJ_INTERNAL const operation::ConversionNNPtr & - derivingConversionRef() PROJ_CONST_DECL; + derivingConversionRef() PROJ_PURE_DECL; //! @endcond protected: @@ -548,8 +548,8 @@ class PROJ_GCC_DLL ProjectedCRS final : public DerivedCRS, PROJ_DLL ~ProjectedCRS() override; //! @endcond - PROJ_DLL const GeodeticCRSNNPtr &baseCRS() PROJ_CONST_DECL; - PROJ_DLL const cs::CartesianCSNNPtr &coordinateSystem() PROJ_CONST_DECL; + PROJ_DLL const GeodeticCRSNNPtr &baseCRS() PROJ_PURE_DECL; + PROJ_DLL const cs::CartesianCSNNPtr &coordinateSystem() PROJ_PURE_DECL; PROJ_DLL static ProjectedCRSNNPtr create(const util::PropertyMap &properties, @@ -795,7 +795,7 @@ class PROJ_GCC_DLL CompoundCRS final : public CRS, //! @endcond PROJ_DLL const std::vector<CRSNNPtr> & - componentReferenceSystems() PROJ_CONST_DECL; + componentReferenceSystems() PROJ_PURE_DECL; PROJ_DLL std::list<std::pair<CompoundCRSNNPtr, int>> identify(const io::AuthorityFactoryPtr &authorityFactory) const; @@ -868,12 +868,12 @@ class PROJ_GCC_DLL BoundCRS final : public CRS, PROJ_DLL ~BoundCRS() override; //! @endcond - PROJ_DLL const CRSNNPtr &baseCRS() PROJ_CONST_DECL; + PROJ_DLL const CRSNNPtr &baseCRS() PROJ_PURE_DECL; PROJ_DLL CRSNNPtr baseCRSWithCanonicalBoundCRS() const; - PROJ_DLL const CRSNNPtr &hubCRS() PROJ_CONST_DECL; + PROJ_DLL const CRSNNPtr &hubCRS() PROJ_PURE_DECL; PROJ_DLL const operation::TransformationNNPtr & - transformation() PROJ_CONST_DECL; + transformation() PROJ_PURE_DECL; //! @cond Doxygen_Suppress PROJ_INTERNAL void _exportToWKT(io::WKTFormatter *formatter) diff --git a/include/proj/datum.hpp b/include/proj/datum.hpp index 6e60c47c..17c4c2c1 100644 --- a/include/proj/datum.hpp +++ b/include/proj/datum.hpp @@ -177,7 +177,7 @@ class PROJ_GCC_DLL PrimeMeridian final : public common::IdentifiedObject, PROJ_DLL ~PrimeMeridian() override; //! @endcond - PROJ_DLL const common::Angle &longitude() PROJ_CONST_DECL; + PROJ_DLL const common::Angle &longitude() PROJ_PURE_DECL; // non-standard PROJ_DLL static PrimeMeridianNNPtr @@ -249,25 +249,25 @@ class PROJ_GCC_DLL Ellipsoid final : public common::IdentifiedObject, PROJ_DLL ~Ellipsoid() override; //! @endcond - PROJ_DLL const common::Length &semiMajorAxis() PROJ_CONST_DECL; + PROJ_DLL const common::Length &semiMajorAxis() PROJ_PURE_DECL; // Inlined from SecondDefiningParameter union PROJ_DLL const util::optional<common::Scale> & - inverseFlattening() PROJ_CONST_DECL; + inverseFlattening() PROJ_PURE_DECL; PROJ_DLL const util::optional<common::Length> & - semiMinorAxis() PROJ_CONST_DECL; - PROJ_DLL bool isSphere() PROJ_CONST_DECL; + semiMinorAxis() PROJ_PURE_DECL; + PROJ_DLL bool isSphere() PROJ_PURE_DECL; PROJ_DLL const util::optional<common::Length> & - semiMedianAxis() PROJ_CONST_DECL; + semiMedianAxis() PROJ_PURE_DECL; // non-standard - PROJ_DLL double computedInverseFlattening() PROJ_CONST_DECL; - PROJ_DLL double squaredEccentricity() PROJ_CONST_DECL; + PROJ_DLL double computedInverseFlattening() PROJ_PURE_DECL; + PROJ_DLL double squaredEccentricity() PROJ_PURE_DECL; PROJ_DLL common::Length computeSemiMinorAxis() const; - PROJ_DLL const std::string &celestialBody() PROJ_CONST_DECL; + PROJ_DLL const std::string &celestialBody() PROJ_PURE_DECL; PROJ_DLL static const std::string EARTH; @@ -377,11 +377,11 @@ class PROJ_GCC_DLL GeodeticReferenceFrame : public Datum { PROJ_DLL ~GeodeticReferenceFrame() override; //! @endcond - PROJ_DLL const PrimeMeridianNNPtr &primeMeridian() PROJ_CONST_DECL; + PROJ_DLL const PrimeMeridianNNPtr &primeMeridian() PROJ_PURE_DECL; // We constraint more than the standard into which the ellipsoid might // be omitted for a CRS with a non-ellipsoidal CS - PROJ_DLL const EllipsoidNNPtr &ellipsoid() PROJ_CONST_DECL; + PROJ_DLL const EllipsoidNNPtr &ellipsoid() PROJ_PURE_DECL; // non-standard PROJ_DLL static GeodeticReferenceFrameNNPtr diff --git a/include/proj/io.hpp b/include/proj/io.hpp index 7f7639cd..ac951233 100644 --- a/include/proj/io.hpp +++ b/include/proj/io.hpp @@ -822,7 +822,7 @@ class PROJ_GCC_DLL AuthorityFactory { const std::string &sourceCRSCode, const std::string &targetCRSCode) const; - PROJ_DLL const std::string &getAuthority() PROJ_CONST_DECL; + PROJ_DLL const std::string &getAuthority() PROJ_PURE_DECL; /** Object type. */ enum class ObjectType { diff --git a/include/proj/metadata.hpp b/include/proj/metadata.hpp index d1b91515..02873c81 100644 --- a/include/proj/metadata.hpp +++ b/include/proj/metadata.hpp @@ -71,7 +71,7 @@ class PROJ_GCC_DLL Citation : public util::BaseObject { PROJ_DLL ~Citation(); //! @endcond - PROJ_DLL const util::optional<std::string> &title() PROJ_CONST_DECL; + PROJ_DLL const util::optional<std::string> &title() PROJ_PURE_DECL; protected: PROJ_FRIEND_OPTIONAL(Citation); @@ -154,10 +154,10 @@ class PROJ_GCC_DLL GeographicBoundingBox : public GeographicExtent { PROJ_DLL ~GeographicBoundingBox() override; //! @endcond - PROJ_DLL double westBoundLongitude() PROJ_CONST_DECL; - PROJ_DLL double southBoundLatitude() PROJ_CONST_DECL; - PROJ_DLL double eastBoundLongitude() PROJ_CONST_DECL; - PROJ_DLL double northBoundLatitude() PROJ_CONST_DECL; + PROJ_DLL double westBoundLongitude() PROJ_PURE_DECL; + PROJ_DLL double southBoundLatitude() PROJ_PURE_DECL; + PROJ_DLL double eastBoundLongitude() PROJ_PURE_DECL; + PROJ_DLL double northBoundLatitude() PROJ_PURE_DECL; PROJ_DLL static GeographicBoundingBoxNNPtr create(double west, double south, double east, double north); @@ -208,8 +208,8 @@ class PROJ_GCC_DLL TemporalExtent : public util::BaseObject, PROJ_DLL ~TemporalExtent() override; //! @endcond - PROJ_DLL const std::string &start() PROJ_CONST_DECL; - PROJ_DLL const std::string &stop() PROJ_CONST_DECL; + PROJ_DLL const std::string &start() PROJ_PURE_DECL; + PROJ_DLL const std::string &stop() PROJ_PURE_DECL; PROJ_DLL static TemporalExtentNNPtr create(const std::string &start, const std::string &stop); @@ -255,9 +255,9 @@ class PROJ_GCC_DLL VerticalExtent : public util::BaseObject, PROJ_DLL ~VerticalExtent() override; //! @endcond - PROJ_DLL double minimumValue() PROJ_CONST_DECL; - PROJ_DLL double maximumValue() PROJ_CONST_DECL; - PROJ_DLL common::UnitOfMeasureNNPtr &unit() PROJ_CONST_DECL; + PROJ_DLL double minimumValue() PROJ_PURE_DECL; + PROJ_DLL double maximumValue() PROJ_PURE_DECL; + PROJ_DLL common::UnitOfMeasureNNPtr &unit() PROJ_PURE_DECL; PROJ_DLL static VerticalExtentNNPtr create(double minimumValue, double maximumValue, @@ -304,13 +304,13 @@ class PROJ_GCC_DLL Extent : public util::BaseObject, public util::IComparable { PROJ_DLL ~Extent() override; //! @endcond - PROJ_DLL const util::optional<std::string> &description() PROJ_CONST_DECL; + PROJ_DLL const util::optional<std::string> &description() PROJ_PURE_DECL; PROJ_DLL const std::vector<GeographicExtentNNPtr> & - geographicElements() PROJ_CONST_DECL; + geographicElements() PROJ_PURE_DECL; PROJ_DLL const std::vector<TemporalExtentNNPtr> & - temporalElements() PROJ_CONST_DECL; + temporalElements() PROJ_PURE_DECL; PROJ_DLL const std::vector<VerticalExtentNNPtr> & - verticalElements() PROJ_CONST_DECL; + verticalElements() PROJ_PURE_DECL; PROJ_DLL static ExtentNNPtr create(const util::optional<std::string> &descriptionIn, @@ -383,12 +383,12 @@ class PROJ_GCC_DLL Identifier : public util::BaseObject, PROJ_DLL static const std::string EPSG; PROJ_DLL static const std::string OGC; - PROJ_DLL const util::optional<Citation> &authority() PROJ_CONST_DECL; - PROJ_DLL const std::string &code() PROJ_CONST_DECL; - PROJ_DLL const util::optional<std::string> &codeSpace() PROJ_CONST_DECL; - PROJ_DLL const util::optional<std::string> &version() PROJ_CONST_DECL; - PROJ_DLL const util::optional<std::string> &description() PROJ_CONST_DECL; - PROJ_DLL const util::optional<std::string> &uri() PROJ_CONST_DECL; + PROJ_DLL const util::optional<Citation> &authority() PROJ_PURE_DECL; + PROJ_DLL const std::string &code() PROJ_PURE_DECL; + PROJ_DLL const util::optional<std::string> &codeSpace() PROJ_PURE_DECL; + PROJ_DLL const util::optional<std::string> &version() PROJ_PURE_DECL; + PROJ_DLL const util::optional<std::string> &description() PROJ_PURE_DECL; + PROJ_DLL const util::optional<std::string> &uri() PROJ_PURE_DECL; PROJ_DLL static bool isEquivalentName(const char *a, const char *b) noexcept; @@ -441,7 +441,7 @@ class PROJ_GCC_DLL PositionalAccuracy : public util::BaseObject { PROJ_DLL ~PositionalAccuracy() override; //! @endcond - PROJ_DLL const std::string &value() PROJ_CONST_DECL; + PROJ_DLL const std::string &value() PROJ_PURE_DECL; PROJ_DLL static PositionalAccuracyNNPtr create(const std::string &valueIn); diff --git a/include/proj/util.hpp b/include/proj/util.hpp index c40595f2..30985ec8 100644 --- a/include/proj/util.hpp +++ b/include/proj/util.hpp @@ -153,30 +153,14 @@ namespace proj {} #if defined(__GNUC__) #define PROJ_NO_INLINE __attribute__((noinline)) #define PROJ_NO_RETURN __attribute__((noreturn)) -// Applies to a function that has no side effect, and its return will not -// change if the arguments are the same. But is return may change -// if the object state changes. So this is for getters of mutable objects. +// Applies to a function that has no side effect. #define PROJ_PURE_DECL const noexcept __attribute__((pure)) -// Applies to a function that has no side effect, and its return will not -// change if the arguments are the same, and their pointed value must not -// be modified. So this is for getters of immutable objets. This is stronger -// than PROJ_PURE_DECL. -#if defined(__INTEL_COMPILER) -// If using __attribute__((const)), ICC on an expression like -// Angle(x).getSIValue() will create the object, destroy it and then call -// getSIValue(). Fallback to ((pure)), which is weaker -#define PROJ_CONST_DECL const noexcept __attribute__((pure)) -#else -#define PROJ_CONST_DECL const noexcept __attribute__((const)) -#endif #else #define PROJ_NO_RETURN #define PROJ_NO_INLINE #define PROJ_PURE_DECL const noexcept -#define PROJ_CONST_DECL const noexcept #endif #define PROJ_PURE_DEFN const noexcept -#define PROJ_CONST_DEFN const noexcept //! @endcond @@ -673,16 +657,16 @@ class CodeList { /** Return the CodeList item as a string. */ // cppcheck-suppress functionStatic - inline const std::string &toString() PROJ_CONST_DECL { return name_; } + inline const std::string &toString() PROJ_PURE_DECL { return name_; } /** Return the CodeList item as a string. */ - inline operator std::string() PROJ_CONST_DECL { return toString(); } + inline operator std::string() PROJ_PURE_DECL { return toString(); } //! @cond Doxygen_Suppress - inline bool operator==(const CodeList &other) PROJ_CONST_DECL { + inline bool operator==(const CodeList &other) PROJ_PURE_DECL { return name_ == other.name_; } - inline bool operator!=(const CodeList &other) PROJ_CONST_DECL { + inline bool operator!=(const CodeList &other) PROJ_PURE_DECL { return name_ != other.name_; } //! @endcond diff --git a/src/iso19111/common.cpp b/src/iso19111/common.cpp index 32eb5a95..ad816275 100644 --- a/src/iso19111/common.cpp +++ b/src/iso19111/common.cpp @@ -329,7 +329,7 @@ Measure::~Measure() = default; /** \brief Return the unit of the Measure. */ -const UnitOfMeasure &Measure::unit() PROJ_CONST_DEFN { return d->unit_; } +const UnitOfMeasure &Measure::unit() PROJ_PURE_DEFN { return d->unit_; } // --------------------------------------------------------------------------- @@ -337,7 +337,7 @@ const UnitOfMeasure &Measure::unit() PROJ_CONST_DEFN { return d->unit_; } * corresponding * unit of the International System. */ -double Measure::getSIValue() PROJ_CONST_DEFN { +double Measure::getSIValue() PROJ_PURE_DEFN { return d->value_ * d->unit_.conversionToSI(); } @@ -345,13 +345,13 @@ double Measure::getSIValue() PROJ_CONST_DEFN { /** \brief Return the value of the measure, expressed in the unit() */ -double Measure::value() PROJ_CONST_DEFN { return d->value_; } +double Measure::value() PROJ_PURE_DEFN { return d->value_; } // --------------------------------------------------------------------------- /** \brief Return the value of this measure expressed into the provided unit. */ -double Measure::convertToUnit(const UnitOfMeasure &otherUnit) PROJ_CONST_DEFN { +double Measure::convertToUnit(const UnitOfMeasure &otherUnit) PROJ_PURE_DEFN { return getSIValue() / otherUnit.conversionToSI(); } @@ -361,7 +361,7 @@ double Measure::convertToUnit(const UnitOfMeasure &otherUnit) PROJ_CONST_DEFN { * * The comparison is done both on the value and the unit. */ -bool Measure::operator==(const Measure &other) PROJ_CONST_DEFN { +bool Measure::operator==(const Measure &other) PROJ_PURE_DEFN { return d->value_ == other.d->value_ && d->unit_ == other.d->unit_; } @@ -567,7 +567,7 @@ IdentifiedObject::~IdentifiedObject() = default; * Generally, the only interesting field of the name will be * name()->description(). */ -const IdentifierNNPtr &IdentifiedObject::name() PROJ_CONST_DEFN { +const IdentifierNNPtr &IdentifiedObject::name() PROJ_PURE_DEFN { return d->name; } @@ -577,7 +577,7 @@ const IdentifierNNPtr &IdentifiedObject::name() PROJ_CONST_DEFN { * * Return *(name()->description()) */ -const std::string &IdentifiedObject::nameStr() PROJ_CONST_DEFN { +const std::string &IdentifiedObject::nameStr() PROJ_PURE_DEFN { return *(d->name->description()); } @@ -589,7 +589,7 @@ const std::string &IdentifiedObject::nameStr() PROJ_CONST_DEFN { * filled. */ const std::vector<IdentifierNNPtr> & -IdentifiedObject::identifiers() PROJ_CONST_DEFN { +IdentifiedObject::identifiers() PROJ_PURE_DEFN { return d->identifiers; } @@ -598,7 +598,7 @@ IdentifiedObject::identifiers() PROJ_CONST_DEFN { /** \brief Return the alias(es) of the object. */ const std::vector<GenericNameNNPtr> & -IdentifiedObject::aliases() PROJ_CONST_DEFN { +IdentifiedObject::aliases() PROJ_PURE_DEFN { return d->aliases; } @@ -608,7 +608,7 @@ IdentifiedObject::aliases() PROJ_CONST_DEFN { * * Shortcut for aliases()[0]->toFullyQualifiedName()->toString() */ -std::string IdentifiedObject::alias() PROJ_CONST_DEFN { +std::string IdentifiedObject::alias() PROJ_PURE_DEFN { if (d->aliases.empty()) return std::string(); return d->aliases[0]->toFullyQualifiedName()->toString(); @@ -619,7 +619,7 @@ std::string IdentifiedObject::alias() PROJ_CONST_DEFN { /** \brief Return the EPSG code. * @return code, or 0 if not found */ -int IdentifiedObject::getEPSGCode() PROJ_CONST_DEFN { +int IdentifiedObject::getEPSGCode() PROJ_PURE_DEFN { for (const auto &id : identifiers()) { if (ci_equal(*(id->codeSpace()), metadata::Identifier::EPSG)) { return ::atoi(id->code().c_str()); @@ -632,7 +632,7 @@ int IdentifiedObject::getEPSGCode() PROJ_CONST_DEFN { /** \brief Return the remarks. */ -const std::string &IdentifiedObject::remarks() PROJ_CONST_DEFN { +const std::string &IdentifiedObject::remarks() PROJ_PURE_DEFN { return d->remarks; } @@ -642,7 +642,7 @@ const std::string &IdentifiedObject::remarks() PROJ_CONST_DEFN { * * \remark Extension of \ref ISO_19111_2018 */ -bool IdentifiedObject::isDeprecated() PROJ_CONST_DEFN { +bool IdentifiedObject::isDeprecated() PROJ_PURE_DEFN { return d->isDeprecated; } @@ -829,7 +829,7 @@ bool IdentifiedObject::_isEquivalentTo( bool IdentifiedObject::_isEquivalentTo(const IdentifiedObject *otherIdObj, util::IComparable::Criterion criterion) - PROJ_CONST_DEFN { + PROJ_PURE_DEFN { if (criterion == util::IComparable::Criterion::STRICT) { if (!ci_equal(nameStr(), otherIdObj->nameStr())) { return false; @@ -883,7 +883,7 @@ ObjectDomain::~ObjectDomain() = default; * * @return the scope, or empty. */ -const optional<std::string> &ObjectDomain::scope() PROJ_CONST_DEFN { +const optional<std::string> &ObjectDomain::scope() PROJ_PURE_DEFN { return d->scope_; } @@ -893,7 +893,7 @@ const optional<std::string> &ObjectDomain::scope() PROJ_CONST_DEFN { * * @return the domain of validity, or nullptr. */ -const ExtentPtr &ObjectDomain::domainOfValidity() PROJ_CONST_DEFN { +const ExtentPtr &ObjectDomain::domainOfValidity() PROJ_PURE_DEFN { return d->domainOfValidity_; } @@ -1013,7 +1013,7 @@ ObjectUsage::~ObjectUsage() = default; /** \brief Return the domains of the object. */ -const std::vector<ObjectDomainNNPtr> &ObjectUsage::domains() PROJ_CONST_DEFN { +const std::vector<ObjectDomainNNPtr> &ObjectUsage::domains() PROJ_PURE_DEFN { return d->domains_; } diff --git a/src/iso19111/coordinateoperation.cpp b/src/iso19111/coordinateoperation.cpp index cc212314..4bdb3779 100644 --- a/src/iso19111/coordinateoperation.cpp +++ b/src/iso19111/coordinateoperation.cpp @@ -760,7 +760,7 @@ OperationMethod::~OperationMethod() = default; * * @return the formula, or empty. */ -const util::optional<std::string> &OperationMethod::formula() PROJ_CONST_DEFN { +const util::optional<std::string> &OperationMethod::formula() PROJ_PURE_DEFN { return d->formula_; } @@ -773,7 +773,7 @@ const util::optional<std::string> &OperationMethod::formula() PROJ_CONST_DEFN { * @return the formula citation, or empty. */ const util::optional<metadata::Citation> & -OperationMethod::formulaCitation() PROJ_CONST_DEFN { +OperationMethod::formulaCitation() PROJ_PURE_DEFN { return d->formulaCitation_; } @@ -784,7 +784,7 @@ OperationMethod::formulaCitation() PROJ_CONST_DEFN { * @return the parameters. */ const std::vector<GeneralOperationParameterNNPtr> & -OperationMethod::parameters() PROJ_CONST_DEFN { +OperationMethod::parameters() PROJ_PURE_DEFN { return d->parameters_; } @@ -835,7 +835,7 @@ OperationMethodNNPtr OperationMethod::create( /** \brief Return the EPSG code, either directly, or through the name * @return code, or 0 if not found */ -int OperationMethod::getEPSGCode() PROJ_CONST_DEFN { +int OperationMethod::getEPSGCode() PROJ_PURE_DEFN { int epsg_code = IdentifiedObject::getEPSGCode(); if (epsg_code == 0) { auto l_name = nameStr(); @@ -1012,7 +1012,7 @@ OperationParameterValue::~OperationParameterValue() = default; * @return the parameter (definition). */ const OperationParameterNNPtr & -OperationParameterValue::parameter() PROJ_CONST_DEFN { +OperationParameterValue::parameter() PROJ_PURE_DEFN { return d->parameter; } @@ -1023,7 +1023,7 @@ OperationParameterValue::parameter() PROJ_CONST_DEFN { * @return the parameter value. */ const ParameterValueNNPtr & -OperationParameterValue::parameterValue() PROJ_CONST_DEFN { +OperationParameterValue::parameterValue() PROJ_PURE_DEFN { return d->parameterValue; } @@ -1273,7 +1273,7 @@ const char *OperationParameter::getNameForEPSGCode(int epsg_code) noexcept { /** \brief Return the EPSG code, either directly, or through the name * @return code, or 0 if not found */ -int OperationParameter::getEPSGCode() PROJ_CONST_DEFN { +int OperationParameter::getEPSGCode() PROJ_PURE_DEFN { int epsg_code = IdentifiedObject::getEPSGCode(); if (epsg_code == 0) { const auto &l_name = nameStr(); @@ -1335,7 +1335,7 @@ SingleOperation::~SingleOperation() = default; * @return the parameter values. */ const std::vector<GeneralParameterValueNNPtr> & -SingleOperation::parameterValues() PROJ_CONST_DEFN { +SingleOperation::parameterValues() PROJ_PURE_DEFN { return d->parameterValues_; } @@ -1345,7 +1345,7 @@ SingleOperation::parameterValues() PROJ_CONST_DEFN { * * @return the operation method. */ -const OperationMethodNNPtr &SingleOperation::method() PROJ_CONST_DEFN { +const OperationMethodNNPtr &SingleOperation::method() PROJ_PURE_DEFN { return d->method_; } @@ -2072,7 +2072,7 @@ ParameterValueNNPtr ParameterValue::create(bool booleanValueIn) { * * @return the type. */ -const ParameterValue::Type &ParameterValue::type() PROJ_CONST_DEFN { +const ParameterValue::Type &ParameterValue::type() PROJ_PURE_DEFN { return d->type_; } @@ -2081,7 +2081,7 @@ const ParameterValue::Type &ParameterValue::type() PROJ_CONST_DEFN { /** \brief Returns the value as a Measure (assumes type() == Type::MEASURE) * @return the value as a Measure. */ -const common::Measure &ParameterValue::value() PROJ_CONST_DEFN { +const common::Measure &ParameterValue::value() PROJ_PURE_DEFN { return *d->measure_; } @@ -2090,7 +2090,7 @@ const common::Measure &ParameterValue::value() PROJ_CONST_DEFN { /** \brief Returns the value as a string (assumes type() == Type::STRING) * @return the value as a string. */ -const std::string &ParameterValue::stringValue() PROJ_CONST_DEFN { +const std::string &ParameterValue::stringValue() PROJ_PURE_DEFN { return *d->stringValue_; } @@ -2099,7 +2099,7 @@ const std::string &ParameterValue::stringValue() PROJ_CONST_DEFN { /** \brief Returns the value as a filename (assumes type() == Type::FILENAME) * @return the value as a filename. */ -const std::string &ParameterValue::valueFile() PROJ_CONST_DEFN { +const std::string &ParameterValue::valueFile() PROJ_PURE_DEFN { return *d->stringValue_; } @@ -2108,14 +2108,14 @@ const std::string &ParameterValue::valueFile() PROJ_CONST_DEFN { /** \brief Returns the value as a integer (assumes type() == Type::INTEGER) * @return the value as a integer. */ -int ParameterValue::integerValue() PROJ_CONST_DEFN { return d->integerValue_; } +int ParameterValue::integerValue() PROJ_PURE_DEFN { return d->integerValue_; } // --------------------------------------------------------------------------- /** \brief Returns the value as a boolean (assumes type() == Type::BOOLEAN) * @return the value as a boolean. */ -bool ParameterValue::booleanValue() PROJ_CONST_DEFN { return d->booleanValue_; } +bool ParameterValue::booleanValue() PROJ_PURE_DEFN { return d->booleanValue_; } // --------------------------------------------------------------------------- @@ -5917,7 +5917,7 @@ Transformation::Transformation(const Transformation &other) * * @return the source CRS. */ -const crs::CRSNNPtr &Transformation::sourceCRS() PROJ_CONST_DEFN { +const crs::CRSNNPtr &Transformation::sourceCRS() PROJ_PURE_DEFN { return CoordinateOperation::getPrivate()->strongRef_->sourceCRS_; } @@ -5927,7 +5927,7 @@ const crs::CRSNNPtr &Transformation::sourceCRS() PROJ_CONST_DEFN { * * @return the target CRS. */ -const crs::CRSNNPtr &Transformation::targetCRS() PROJ_CONST_DEFN { +const crs::CRSNNPtr &Transformation::targetCRS() PROJ_PURE_DEFN { return CoordinateOperation::getPrivate()->strongRef_->targetCRS_; } diff --git a/src/iso19111/coordinatesystem.cpp b/src/iso19111/coordinatesystem.cpp index 2281c78f..efba8c05 100644 --- a/src/iso19111/coordinatesystem.cpp +++ b/src/iso19111/coordinatesystem.cpp @@ -104,7 +104,7 @@ Meridian::~Meridian() = default; * * @return the longitude. */ -const common::Angle &Meridian::longitude() PROJ_CONST_DEFN { +const common::Angle &Meridian::longitude() PROJ_PURE_DEFN { return d->longitude_; } @@ -178,7 +178,7 @@ CoordinateSystemAxis::~CoordinateSystemAxis() = default; * * @return the abbreviation. */ -const std::string &CoordinateSystemAxis::abbreviation() PROJ_CONST_DEFN { +const std::string &CoordinateSystemAxis::abbreviation() PROJ_PURE_DEFN { return d->abbreviation; } @@ -199,7 +199,7 @@ const std::string &CoordinateSystemAxis::abbreviation() PROJ_CONST_DEFN { * * @return the direction. */ -const AxisDirection &CoordinateSystemAxis::direction() PROJ_CONST_DEFN { +const AxisDirection &CoordinateSystemAxis::direction() PROJ_PURE_DEFN { return *(d->direction); } @@ -213,7 +213,7 @@ const AxisDirection &CoordinateSystemAxis::direction() PROJ_CONST_DEFN { * * @return the axis unit. */ -const common::UnitOfMeasure &CoordinateSystemAxis::unit() PROJ_CONST_DEFN { +const common::UnitOfMeasure &CoordinateSystemAxis::unit() PROJ_PURE_DEFN { return d->unit; } @@ -225,7 +225,7 @@ const common::UnitOfMeasure &CoordinateSystemAxis::unit() PROJ_CONST_DEFN { * @return the minimum value, or empty. */ const util::optional<double> & -CoordinateSystemAxis::minimumValue() PROJ_CONST_DEFN { +CoordinateSystemAxis::minimumValue() PROJ_PURE_DEFN { return d->minimumValue; } @@ -237,7 +237,7 @@ CoordinateSystemAxis::minimumValue() PROJ_CONST_DEFN { * @return the maximum value, or empty. */ const util::optional<double> & -CoordinateSystemAxis::maximumValue() PROJ_CONST_DEFN { +CoordinateSystemAxis::maximumValue() PROJ_PURE_DEFN { return d->maximumValue; } @@ -249,7 +249,7 @@ CoordinateSystemAxis::maximumValue() PROJ_CONST_DEFN { * * @return the meridian, or null. */ -const MeridianPtr &CoordinateSystemAxis::meridian() PROJ_CONST_DEFN { +const MeridianPtr &CoordinateSystemAxis::meridian() PROJ_PURE_DEFN { return d->meridian; } @@ -466,7 +466,7 @@ CoordinateSystem::~CoordinateSystem() = default; * @return the axes. */ const std::vector<CoordinateSystemAxisNNPtr> & -CoordinateSystem::axisList() PROJ_CONST_DEFN { +CoordinateSystem::axisList() PROJ_PURE_DEFN { return d->axisList; } diff --git a/src/iso19111/crs.cpp b/src/iso19111/crs.cpp index 81c70b7a..7bf40e0c 100644 --- a/src/iso19111/crs.cpp +++ b/src/iso19111/crs.cpp @@ -131,7 +131,7 @@ CRS::~CRS() = default; * * @return a BoundCRSPtr, that might be null. */ -const BoundCRSPtr &CRS::canonicalBoundCRS() PROJ_CONST_DEFN { +const BoundCRSPtr &CRS::canonicalBoundCRS() PROJ_PURE_DEFN { return d->canonicalBoundCRS_; } @@ -712,7 +712,7 @@ SingleCRS::~SingleCRS() = default; * * @return a Datum that might be null. */ -const datum::DatumPtr &SingleCRS::datum() PROJ_CONST_DEFN { return d->datum; } +const datum::DatumPtr &SingleCRS::datum() PROJ_PURE_DEFN { return d->datum; } // --------------------------------------------------------------------------- @@ -722,7 +722,7 @@ const datum::DatumPtr &SingleCRS::datum() PROJ_CONST_DEFN { return d->datum; } * * @return a DatumEnsemble that might be null. */ -const datum::DatumEnsemblePtr &SingleCRS::datumEnsemble() PROJ_CONST_DEFN { +const datum::DatumEnsemblePtr &SingleCRS::datumEnsemble() PROJ_PURE_DEFN { return d->datumEnsemble; } @@ -734,7 +734,7 @@ const datum::DatumEnsemblePtr &SingleCRS::datumEnsemble() PROJ_CONST_DEFN { * * @return a CoordinateSystem that might be null. */ -const cs::CoordinateSystemNNPtr &SingleCRS::coordinateSystem() PROJ_CONST_DEFN { +const cs::CoordinateSystemNNPtr &SingleCRS::coordinateSystem() PROJ_PURE_DEFN { return d->coordinateSystem; } @@ -873,7 +873,7 @@ CRSNNPtr GeodeticCRS::_shallowClone() const { * @return a GeodeticReferenceFrame or null (in which case datumEnsemble() * should return a non-null pointer.) */ -const datum::GeodeticReferenceFramePtr &GeodeticCRS::datum() PROJ_CONST_DEFN { +const datum::GeodeticReferenceFramePtr &GeodeticCRS::datum() PROJ_PURE_DEFN { return d->datum_; } @@ -895,7 +895,7 @@ static datum::GeodeticReferenceFrame *oneDatum(const GeodeticCRS *crs) { * * @return the PrimeMeridian. */ -const datum::PrimeMeridianNNPtr &GeodeticCRS::primeMeridian() PROJ_CONST_DEFN { +const datum::PrimeMeridianNNPtr &GeodeticCRS::primeMeridian() PROJ_PURE_DEFN { if (d->datum_) { return d->datum_->primeMeridian(); } @@ -909,7 +909,7 @@ const datum::PrimeMeridianNNPtr &GeodeticCRS::primeMeridian() PROJ_CONST_DEFN { * * @return the PrimeMeridian. */ -const datum::EllipsoidNNPtr &GeodeticCRS::ellipsoid() PROJ_CONST_DEFN { +const datum::EllipsoidNNPtr &GeodeticCRS::ellipsoid() PROJ_PURE_DEFN { if (d->datum_) { return d->datum_->ellipsoid(); } @@ -923,7 +923,7 @@ const datum::EllipsoidNNPtr &GeodeticCRS::ellipsoid() PROJ_CONST_DEFN { * @return a velocity model. might be null. */ const std::vector<operation::PointMotionOperationNNPtr> & -GeodeticCRS::velocityModel() PROJ_CONST_DEFN { +GeodeticCRS::velocityModel() PROJ_PURE_DEFN { return d->velocityModel; } @@ -938,7 +938,7 @@ GeodeticCRS::velocityModel() PROJ_CONST_DEFN { * * @return true if the CRS is a geocentric CRS. */ -bool GeodeticCRS::isGeocentric() PROJ_CONST_DEFN { +bool GeodeticCRS::isGeocentric() PROJ_PURE_DEFN { const auto &cs = coordinateSystem(); const auto &axisList = cs->axisList(); return axisList.size() == 3 && @@ -1653,7 +1653,7 @@ CRSNNPtr GeographicCRS::_shallowClone() const { * @return a EllipsoidalCS. */ const cs::EllipsoidalCSNNPtr & -GeographicCRS::coordinateSystem() PROJ_CONST_DEFN { +GeographicCRS::coordinateSystem() PROJ_PURE_DEFN { return d->coordinateSystem_; } @@ -1715,7 +1715,7 @@ GeographicCRS::create(const util::PropertyMap &properties, * other 3D GeographicCRS. */ bool GeographicCRS::is2DPartOf3D(util::nn<const GeographicCRS *> other) - PROJ_CONST_DEFN { + PROJ_PURE_DEFN { const auto &axis = d->coordinateSystem_->axisList(); const auto &otherAxis = other->d->coordinateSystem_->axisList(); if (!(axis.size() == 2 && otherAxis.size() == 3)) { @@ -2009,7 +2009,7 @@ const datum::VerticalReferenceFramePtr VerticalCRS::datum() const { * @return a geoid model. might be null */ const std::vector<operation::TransformationNNPtr> & -VerticalCRS::geoidModel() PROJ_CONST_DEFN { +VerticalCRS::geoidModel() PROJ_PURE_DEFN { return d->geoidModel; } @@ -2020,7 +2020,7 @@ VerticalCRS::geoidModel() PROJ_CONST_DEFN { * @return a velocity model. might be null. */ const std::vector<operation::PointMotionOperationNNPtr> & -VerticalCRS::velocityModel() PROJ_CONST_DEFN { +VerticalCRS::velocityModel() PROJ_PURE_DEFN { return d->velocityModel; } @@ -2370,7 +2370,7 @@ DerivedCRS::~DerivedCRS() = default; * * @return the base CRS. */ -const SingleCRSNNPtr &DerivedCRS::baseCRS() PROJ_CONST_DEFN { +const SingleCRSNNPtr &DerivedCRS::baseCRS() PROJ_PURE_DEFN { return d->baseCRS_; } @@ -2388,7 +2388,7 @@ const operation::ConversionNNPtr DerivedCRS::derivingConversion() const { //! @cond Doxygen_Suppress const operation::ConversionNNPtr & -DerivedCRS::derivingConversionRef() PROJ_CONST_DEFN { +DerivedCRS::derivingConversionRef() PROJ_PURE_DEFN { return d->derivingConversion_; } //! @endcond @@ -2495,7 +2495,7 @@ CRSNNPtr ProjectedCRS::_shallowClone() const { * * @return the base CRS. */ -const GeodeticCRSNNPtr &ProjectedCRS::baseCRS() PROJ_CONST_DEFN { +const GeodeticCRSNNPtr &ProjectedCRS::baseCRS() PROJ_PURE_DEFN { return d->baseCRS(); } @@ -2505,7 +2505,7 @@ const GeodeticCRSNNPtr &ProjectedCRS::baseCRS() PROJ_CONST_DEFN { * * @return a CartesianCS */ -const cs::CartesianCSNNPtr &ProjectedCRS::coordinateSystem() PROJ_CONST_DEFN { +const cs::CartesianCSNNPtr &ProjectedCRS::coordinateSystem() PROJ_PURE_DEFN { return d->coordinateSystem(); } @@ -3209,7 +3209,7 @@ CRSNNPtr CompoundCRS::_shallowClone() const { * @return the components. */ const std::vector<CRSNNPtr> & -CompoundCRS::componentReferenceSystems() PROJ_CONST_DEFN { +CompoundCRS::componentReferenceSystems() PROJ_PURE_DEFN { return d->components_; } @@ -3552,7 +3552,7 @@ CRSNNPtr BoundCRS::_shallowClone() const { return shallowCloneAsBoundCRS(); } * * @return the base CRS. */ -const CRSNNPtr &BoundCRS::baseCRS() PROJ_CONST_DEFN { return d->baseCRS_; } +const CRSNNPtr &BoundCRS::baseCRS() PROJ_PURE_DEFN { return d->baseCRS_; } // --------------------------------------------------------------------------- @@ -3589,7 +3589,7 @@ CRSNNPtr BoundCRS::baseCRSWithCanonicalBoundCRS() const { * * @return the hub CRS. */ -const CRSNNPtr &BoundCRS::hubCRS() PROJ_CONST_DEFN { return d->hubCRS_; } +const CRSNNPtr &BoundCRS::hubCRS() PROJ_PURE_DEFN { return d->hubCRS_; } // --------------------------------------------------------------------------- @@ -3598,7 +3598,7 @@ const CRSNNPtr &BoundCRS::hubCRS() PROJ_CONST_DEFN { return d->hubCRS_; } * @return transformation. */ const operation::TransformationNNPtr & -BoundCRS::transformation() PROJ_CONST_DEFN { +BoundCRS::transformation() PROJ_PURE_DEFN { return d->transformation_; } diff --git a/src/iso19111/datum.cpp b/src/iso19111/datum.cpp index cbd15195..9d2e48a0 100644 --- a/src/iso19111/datum.cpp +++ b/src/iso19111/datum.cpp @@ -267,7 +267,7 @@ PrimeMeridian::~PrimeMeridian() = default; * * @return the longitude of the prime meridian. */ -const common::Angle &PrimeMeridian::longitude() PROJ_CONST_DEFN { +const common::Angle &PrimeMeridian::longitude() PROJ_PURE_DEFN { return d->longitude_; } @@ -477,7 +477,7 @@ Ellipsoid::Ellipsoid(const Ellipsoid &other) * * @return the semi-major axis. */ -const common::Length &Ellipsoid::semiMajorAxis() PROJ_CONST_DEFN { +const common::Length &Ellipsoid::semiMajorAxis() PROJ_PURE_DEFN { return d->semiMajorAxis_; } @@ -494,7 +494,7 @@ const common::Length &Ellipsoid::semiMajorAxis() PROJ_CONST_DEFN { * @return the inverse flattening value of the ellipsoid, or empty. */ const util::optional<common::Scale> & -Ellipsoid::inverseFlattening() PROJ_CONST_DEFN { +Ellipsoid::inverseFlattening() PROJ_PURE_DEFN { return d->inverseFlattening_; } @@ -511,7 +511,7 @@ Ellipsoid::inverseFlattening() PROJ_CONST_DEFN { * @return the semi-minor axis of the ellipsoid, or empty. */ const util::optional<common::Length> & -Ellipsoid::semiMinorAxis() PROJ_CONST_DEFN { +Ellipsoid::semiMinorAxis() PROJ_PURE_DEFN { return d->semiMinorAxis_; } @@ -526,7 +526,7 @@ Ellipsoid::semiMinorAxis() PROJ_CONST_DEFN { * * @return true if the ellipsoid is spherical. */ -bool Ellipsoid::isSphere() PROJ_CONST_DEFN { +bool Ellipsoid::isSphere() PROJ_PURE_DEFN { if (d->inverseFlattening_.has_value()) { return d->inverseFlattening_->value() == 0; } @@ -547,7 +547,7 @@ bool Ellipsoid::isSphere() PROJ_CONST_DEFN { * @return the semi-median axis of the ellipsoid, or empty. */ const util::optional<common::Length> & -Ellipsoid::semiMedianAxis() PROJ_CONST_DEFN { +Ellipsoid::semiMedianAxis() PROJ_PURE_DEFN { return d->semiMedianAxis_; } @@ -560,7 +560,7 @@ Ellipsoid::semiMedianAxis() PROJ_CONST_DEFN { * * @return the inverse flattening value of the ellipsoid, or 0 for a sphere. */ -double Ellipsoid::computedInverseFlattening() PROJ_CONST_DEFN { +double Ellipsoid::computedInverseFlattening() PROJ_PURE_DEFN { if (d->inverseFlattening_.has_value()) { return d->inverseFlattening_->getSIValue(); } @@ -580,7 +580,7 @@ double Ellipsoid::computedInverseFlattening() PROJ_CONST_DEFN { * * @return the squared eccentricity, or a negative value if invalid. */ -double Ellipsoid::squaredEccentricity() PROJ_CONST_DEFN { +double Ellipsoid::squaredEccentricity() PROJ_PURE_DEFN { const double rf = computedInverseFlattening(); const double f = rf != 0.0 ? 1. / rf : 0.0; const double e2 = f * (2 - f); @@ -616,7 +616,7 @@ common::Length Ellipsoid::computeSemiMinorAxis() const { /** \brief Return the name of the celestial body on which the ellipsoid refers * to. */ -const std::string &Ellipsoid::celestialBody() PROJ_CONST_DEFN { +const std::string &Ellipsoid::celestialBody() PROJ_PURE_DEFN { return d->celestialBody_; } @@ -998,7 +998,7 @@ GeodeticReferenceFrame::~GeodeticReferenceFrame() = default; * @return the PrimeMeridian. */ const PrimeMeridianNNPtr & -GeodeticReferenceFrame::primeMeridian() PROJ_CONST_DEFN { +GeodeticReferenceFrame::primeMeridian() PROJ_PURE_DEFN { return d->primeMeridian_; } @@ -1014,7 +1014,7 @@ GeodeticReferenceFrame::primeMeridian() PROJ_CONST_DEFN { * * @return the Ellipsoid. */ -const EllipsoidNNPtr &GeodeticReferenceFrame::ellipsoid() PROJ_CONST_DEFN { +const EllipsoidNNPtr &GeodeticReferenceFrame::ellipsoid() PROJ_PURE_DEFN { return d->ellipsoid_; } // --------------------------------------------------------------------------- diff --git a/src/iso19111/factory.cpp b/src/iso19111/factory.cpp index 3b6563f3..fb75b7b6 100644 --- a/src/iso19111/factory.cpp +++ b/src/iso19111/factory.cpp @@ -1170,9 +1170,9 @@ struct AuthorityFactory::Private { const std::string &authorityName) : context_(contextIn), authority_(authorityName) {} - inline const std::string &authority() PROJ_CONST_DEFN { return authority_; } + inline const std::string &authority() PROJ_PURE_DEFN { return authority_; } - inline const DatabaseContextNNPtr &context() PROJ_CONST_DEFN { + inline const DatabaseContextNNPtr &context() PROJ_PURE_DEFN { return context_; } @@ -3732,7 +3732,7 @@ AuthorityFactory::createFromCRSCodesWithIntermediates( /** \brief Returns the authority name associated to this factory. * @return name. */ -const std::string &AuthorityFactory::getAuthority() PROJ_CONST_DEFN { +const std::string &AuthorityFactory::getAuthority() PROJ_PURE_DEFN { return d->authority(); } diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index 5be02ffe..52c484b9 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -782,15 +782,15 @@ struct WKTNode::Private { explicit Private(const std::string &valueIn) : value_(valueIn) {} // cppcheck-suppress functionStatic - inline const std::string &value() PROJ_CONST_DEFN { return value_; } + inline const std::string &value() PROJ_PURE_DEFN { return value_; } // cppcheck-suppress functionStatic - inline const std::vector<WKTNodeNNPtr> &children() PROJ_CONST_DEFN { + inline const std::vector<WKTNodeNNPtr> &children() PROJ_PURE_DEFN { return children_; } // cppcheck-suppress functionStatic - inline size_t childrenSize() PROJ_CONST_DEFN { return children_.size(); } + inline size_t childrenSize() PROJ_PURE_DEFN { return children_.size(); } // cppcheck-suppress functionStatic const WKTNodeNNPtr &lookForChild(const std::string &childName, diff --git a/src/iso19111/metadata.cpp b/src/iso19111/metadata.cpp index ddda2987..6bf9d600 100644 --- a/src/iso19111/metadata.cpp +++ b/src/iso19111/metadata.cpp @@ -108,7 +108,7 @@ Citation &Citation::operator=(const Citation &other) { // --------------------------------------------------------------------------- /** \brief Returns the name by which the cited resource is known. */ -const optional<std::string> &Citation::title() PROJ_CONST_DEFN { +const optional<std::string> &Citation::title() PROJ_PURE_DEFN { return d->title; } @@ -169,7 +169,7 @@ GeographicBoundingBox::~GeographicBoundingBox() = default; * If eastBoundLongitude < westBoundLongitude(), then the bounding box crosses * the anti-meridian. */ -double GeographicBoundingBox::westBoundLongitude() PROJ_CONST_DEFN { +double GeographicBoundingBox::westBoundLongitude() PROJ_PURE_DEFN { return d->west_; } @@ -180,7 +180,7 @@ double GeographicBoundingBox::westBoundLongitude() PROJ_CONST_DEFN { * * The unit is degrees. */ -double GeographicBoundingBox::southBoundLatitude() PROJ_CONST_DEFN { +double GeographicBoundingBox::southBoundLatitude() PROJ_PURE_DEFN { return d->south_; } @@ -194,7 +194,7 @@ double GeographicBoundingBox::southBoundLatitude() PROJ_CONST_DEFN { * If eastBoundLongitude < westBoundLongitude(), then the bounding box crosses * the anti-meridian. */ -double GeographicBoundingBox::eastBoundLongitude() PROJ_CONST_DEFN { +double GeographicBoundingBox::eastBoundLongitude() PROJ_PURE_DEFN { return d->east_; } @@ -205,7 +205,7 @@ double GeographicBoundingBox::eastBoundLongitude() PROJ_CONST_DEFN { * * The unit is degrees. */ -double GeographicBoundingBox::northBoundLatitude() PROJ_CONST_DEFN { +double GeographicBoundingBox::northBoundLatitude() PROJ_PURE_DEFN { return d->north_; } @@ -466,19 +466,19 @@ VerticalExtent::~VerticalExtent() = default; /** \brief Returns the minimum of the vertical extent. */ -double VerticalExtent::minimumValue() PROJ_CONST_DEFN { return d->minimum_; } +double VerticalExtent::minimumValue() PROJ_PURE_DEFN { return d->minimum_; } // --------------------------------------------------------------------------- /** \brief Returns the maximum of the vertical extent. */ -double VerticalExtent::maximumValue() PROJ_CONST_DEFN { return d->maximum_; } +double VerticalExtent::maximumValue() PROJ_PURE_DEFN { return d->maximum_; } // --------------------------------------------------------------------------- /** \brief Returns the unit of the vertical extent. */ -common::UnitOfMeasureNNPtr &VerticalExtent::unit() PROJ_CONST_DEFN { +common::UnitOfMeasureNNPtr &VerticalExtent::unit() PROJ_PURE_DEFN { return d->unit_; } @@ -562,13 +562,13 @@ TemporalExtent::~TemporalExtent() = default; /** \brief Returns the start of the temporal extent. */ -const std::string &TemporalExtent::start() PROJ_CONST_DEFN { return d->start_; } +const std::string &TemporalExtent::start() PROJ_PURE_DEFN { return d->start_; } // --------------------------------------------------------------------------- /** \brief Returns the end of the temporal extent. */ -const std::string &TemporalExtent::stop() PROJ_CONST_DEFN { return d->stop_; } +const std::string &TemporalExtent::stop() PROJ_PURE_DEFN { return d->stop_; } // --------------------------------------------------------------------------- @@ -643,7 +643,7 @@ Extent::~Extent() = default; * * @return the description, or empty. */ -const optional<std::string> &Extent::description() PROJ_CONST_DEFN { +const optional<std::string> &Extent::description() PROJ_PURE_DEFN { return d->description_; } @@ -654,7 +654,7 @@ const optional<std::string> &Extent::description() PROJ_CONST_DEFN { * @return the geographic element(s), or empty. */ const std::vector<GeographicExtentNNPtr> & -Extent::geographicElements() PROJ_CONST_DEFN { +Extent::geographicElements() PROJ_PURE_DEFN { return d->geographicElements_; } @@ -665,7 +665,7 @@ Extent::geographicElements() PROJ_CONST_DEFN { * @return the vertical element(s), or empty. */ const std::vector<VerticalExtentNNPtr> & -Extent::verticalElements() PROJ_CONST_DEFN { +Extent::verticalElements() PROJ_PURE_DEFN { return d->verticalElements_; } @@ -676,7 +676,7 @@ Extent::verticalElements() PROJ_CONST_DEFN { * @return the temporal element(s), or empty. */ const std::vector<TemporalExtentNNPtr> & -Extent::temporalElements() PROJ_CONST_DEFN { +Extent::temporalElements() PROJ_PURE_DEFN { return d->temporalElements_; } @@ -980,7 +980,7 @@ Identifier::createFromDescription(const std::string &descriptionIn) { * * @return the citation for the authority, or empty. */ -const optional<Citation> &Identifier::authority() PROJ_CONST_DEFN { +const optional<Citation> &Identifier::authority() PROJ_PURE_DEFN { return d->authority_; } @@ -993,7 +993,7 @@ const optional<Citation> &Identifier::authority() PROJ_CONST_DEFN { * * @return the code. */ -const std::string &Identifier::code() PROJ_CONST_DEFN { return d->code_; } +const std::string &Identifier::code() PROJ_PURE_DEFN { return d->code_; } // --------------------------------------------------------------------------- @@ -1004,7 +1004,7 @@ const std::string &Identifier::code() PROJ_CONST_DEFN { return d->code_; } * * @return the authority codespace, or empty. */ -const optional<std::string> &Identifier::codeSpace() PROJ_CONST_DEFN { +const optional<std::string> &Identifier::codeSpace() PROJ_PURE_DEFN { return d->codeSpace_; } @@ -1017,7 +1017,7 @@ const optional<std::string> &Identifier::codeSpace() PROJ_CONST_DEFN { * * @return the version or empty. */ -const optional<std::string> &Identifier::version() PROJ_CONST_DEFN { +const optional<std::string> &Identifier::version() PROJ_PURE_DEFN { return d->version_; } @@ -1028,7 +1028,7 @@ const optional<std::string> &Identifier::version() PROJ_CONST_DEFN { * * @return the description or empty. */ -const optional<std::string> &Identifier::description() PROJ_CONST_DEFN { +const optional<std::string> &Identifier::description() PROJ_PURE_DEFN { return d->description_; } @@ -1038,7 +1038,7 @@ const optional<std::string> &Identifier::description() PROJ_CONST_DEFN { * * @return the URI or empty. */ -const optional<std::string> &Identifier::uri() PROJ_CONST_DEFN { +const optional<std::string> &Identifier::uri() PROJ_PURE_DEFN { return d->uri_; } @@ -1266,7 +1266,7 @@ PositionalAccuracy::~PositionalAccuracy() = default; /** \brief Return the value of the positional accuracy. */ -const std::string &PositionalAccuracy::value() PROJ_CONST_DEFN { +const std::string &PositionalAccuracy::value() PROJ_PURE_DEFN { return d->value_; } |
