aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2019-01-17 21:15:24 +0100
committerEven Rouault <even.rouault@spatialys.com>2019-01-17 21:15:24 +0100
commit3fc48e6146e020b86a0ef87749cc645f9b4fa113 (patch)
tree810b23b6de2e775eca03eafd81ff659a8a0319a0
parent6d2af0904652baba69ec81261c914e9b68221dac (diff)
downloadPROJ-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.hpp34
-rw-r--r--include/proj/coordinateoperation.hpp34
-rw-r--r--include/proj/coordinatesystem.hpp16
-rw-r--r--include/proj/crs.hpp42
-rw-r--r--include/proj/datum.hpp22
-rw-r--r--include/proj/io.hpp2
-rw-r--r--include/proj/metadata.hpp42
-rw-r--r--include/proj/util.hpp26
-rw-r--r--src/iso19111/common.cpp34
-rw-r--r--src/iso19111/coordinateoperation.cpp34
-rw-r--r--src/iso19111/coordinatesystem.cpp16
-rw-r--r--src/iso19111/crs.cpp42
-rw-r--r--src/iso19111/datum.cpp22
-rw-r--r--src/iso19111/factory.cpp6
-rw-r--r--src/iso19111/io.cpp6
-rw-r--r--src/iso19111/metadata.cpp42
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 &parameter() PROJ_CONST_DECL;
- PROJ_DLL const ParameterValueNNPtr &parameterValue() PROJ_CONST_DECL;
+ PROJ_DLL const OperationParameterNNPtr &parameter() PROJ_PURE_DECL;
+ PROJ_DLL const ParameterValueNNPtr &parameterValue() PROJ_PURE_DECL;
PROJ_DLL static OperationParameterValueNNPtr
create(const OperationParameterNNPtr &parameterIn,
@@ -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> &parameters);
- 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 &paramName, 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_;
}