[geos-commits] [SCM] geos branch master updated. b7101be6533a1273f715a3309889c23b7ae02e4f

git at osgeo.org git at osgeo.org
Sat Sep 9 14:07:18 PDT 2017


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "geos".

The branch, master has been updated
       via  b7101be6533a1273f715a3309889c23b7ae02e4f (commit)
      from  6f0c2bac087180369760e9fed244bb797582a3b2 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit b7101be6533a1273f715a3309889c23b7ae02e4f
Author: Mateusz Loskot <mateusz at loskot.net>
Date:   Sat Sep 9 22:23:43 2017 +0200

    Apply clang-tidy-4.0 modernize-use-override
    
    Used command:
      run-clang-tidy.py -header-filter='.*' -checks='-*,modernize-use-modernize' -fix
    
    Part of GEOS RFC 5: C++11 Compilation Mode

diff --git a/capi/geos_ts_c.cpp b/capi/geos_ts_c.cpp
index 00e347f..45426a1 100644
--- a/capi/geos_ts_c.cpp
+++ b/capi/geos_ts_c.cpp
@@ -274,7 +274,7 @@ class CAPI_ItemVisitor : public geos::index::ItemVisitor {
   public:
     CAPI_ItemVisitor (GEOSQueryCallback cb, void *ud)
         : ItemVisitor(), callback(cb), userdata(ud) {}
-    void visitItem (void *item) { callback(item, userdata); }
+    void visitItem (void *item) override { callback(item, userdata); }
 };
 
 
@@ -6199,7 +6199,7 @@ GEOSSTRtree_nearest_generic_r(GEOSContextHandle_t extHandle,
 				GEOSDistanceCallback m_distancefn;
 				void* m_userdata;
 
-				double distance(const ItemBoundable* item1, const ItemBoundable* item2) {
+				double distance(const ItemBoundable* item1, const ItemBoundable* item2) override {
 						const void* a = item1->getItem();
 						const void* b = item2->getItem();
 						double d;
diff --git a/include/geos/algorithm/MCPointInRing.h b/include/geos/algorithm/MCPointInRing.h
index 9e5160e..872cf44 100644
--- a/include/geos/algorithm/MCPointInRing.h
+++ b/include/geos/algorithm/MCPointInRing.h
@@ -50,8 +50,8 @@ namespace algorithm { // geos::algorithm
 class GEOS_DLL MCPointInRing: public PointInRing {
 public:
 	MCPointInRing(const geom::LinearRing *newRing);
-	~MCPointInRing();
-	bool isInside(const geom::Coordinate& pt);
+	~MCPointInRing() override;
+	bool isInside(const geom::Coordinate& pt) override;
 
 	void testLineSegment(const geom::Coordinate& p,
 	                        const geom::LineSegment& seg);
@@ -63,7 +63,7 @@ public:
 		MCPointInRing *parent;
 	public:
 		MCSelecter(const geom::Coordinate& newP, MCPointInRing *prt);
-		void select(const geom::LineSegment& ls);
+		void select(const geom::LineSegment& ls) override;
 	};
 
 private:
diff --git a/include/geos/algorithm/NotRepresentableException.h b/include/geos/algorithm/NotRepresentableException.h
index 5ca390c..f8a0fa7 100644
--- a/include/geos/algorithm/NotRepresentableException.h
+++ b/include/geos/algorithm/NotRepresentableException.h
@@ -36,7 +36,7 @@ class GEOS_DLL NotRepresentableException: public util::GEOSException {
 public:
 	NotRepresentableException();
 	NotRepresentableException(std::string msg);
-	~NotRepresentableException() throw() {}
+	~NotRepresentableException() throw() override {}
 };
 
 } // namespace geos::algorithm
diff --git a/include/geos/algorithm/SIRtreePointInRing.h b/include/geos/algorithm/SIRtreePointInRing.h
index ab56449..cb29a69 100644
--- a/include/geos/algorithm/SIRtreePointInRing.h
+++ b/include/geos/algorithm/SIRtreePointInRing.h
@@ -49,8 +49,8 @@ private:
 			geom::LineSegment *seg);
 public:
 	SIRtreePointInRing(geom::LinearRing *newRing);
-	~SIRtreePointInRing();
-	bool isInside(const geom::Coordinate& pt);
+	~SIRtreePointInRing() override;
+	bool isInside(const geom::Coordinate& pt) override;
 };
 
 } // namespace geos::algorithm
diff --git a/include/geos/algorithm/SimplePointInRing.h b/include/geos/algorithm/SimplePointInRing.h
index fda9c6b..05cfeda 100644
--- a/include/geos/algorithm/SimplePointInRing.h
+++ b/include/geos/algorithm/SimplePointInRing.h
@@ -34,8 +34,8 @@ namespace algorithm { // geos::algorithm
 class GEOS_DLL SimplePointInRing: public PointInRing {
 public:
 	SimplePointInRing(geom::LinearRing *ring);
-	virtual ~SimplePointInRing();
-	bool isInside(const geom::Coordinate& pt);
+	~SimplePointInRing() override;
+	bool isInside(const geom::Coordinate& pt) override;
 private:
 	const geom::CoordinateSequence* pts;
 };
diff --git a/include/geos/algorithm/distance/DiscreteHausdorffDistance.h b/include/geos/algorithm/distance/DiscreteHausdorffDistance.h
index 54cca1f..4e6c320 100644
--- a/include/geos/algorithm/distance/DiscreteHausdorffDistance.h
+++ b/include/geos/algorithm/distance/DiscreteHausdorffDistance.h
@@ -160,7 +160,7 @@ public:
 			geom(geom)
 		{}
 
-		void filter_ro(const geom::Coordinate* pt)
+		void filter_ro(const geom::Coordinate* pt) override
 		{
 			minPtDist.initialize();
 			DistanceToPoint::computeDistance(geom, *pt,
@@ -198,11 +198,11 @@ public:
 		}
 
 		void filter_ro(const geom::CoordinateSequence& seq,
-		               std::size_t index);
+		               std::size_t index) override;
 
-		bool isGeometryChanged() const { return false; }
+		bool isGeometryChanged() const override { return false; }
 
-		bool isDone() const { return false; }
+		bool isDone() const override { return false; }
 
 		const PointPairDistance& getMaxPointDistance() const {
 			return maxPtDist;
diff --git a/include/geos/algorithm/locate/IndexedPointInAreaLocator.h b/include/geos/algorithm/locate/IndexedPointInAreaLocator.h
index 96329a8..d10b290 100644
--- a/include/geos/algorithm/locate/IndexedPointInAreaLocator.h
+++ b/include/geos/algorithm/locate/IndexedPointInAreaLocator.h
@@ -84,10 +84,10 @@ private:
 		:	counter( counter)
 		{ }
 
-		~SegmentVisitor()
+		~SegmentVisitor() override
 		{ }
 
-		void visitItem( void * item);
+		void visitItem( void * item) override;
 	};
 
 
@@ -107,7 +107,7 @@ public:
 	 */
 	IndexedPointInAreaLocator( const geom::Geometry & g);
 
-	~IndexedPointInAreaLocator();
+	~IndexedPointInAreaLocator() override;
 
 	/**
 	 * Determines the {@link Location} of a point in an areal {@link Geometry}.
@@ -115,7 +115,7 @@ public:
 	 * @param p the point to test
 	 * @return the location of the point in the geometry
 	 */
-	int locate( const geom::Coordinate * /*const*/ p);
+	int locate( const geom::Coordinate * /*const*/ p) override;
 
 };
 
diff --git a/include/geos/algorithm/locate/SimplePointInAreaLocator.h b/include/geos/algorithm/locate/SimplePointInAreaLocator.h
index 58f1221..c9f0f89 100644
--- a/include/geos/algorithm/locate/SimplePointInAreaLocator.h
+++ b/include/geos/algorithm/locate/SimplePointInAreaLocator.h
@@ -59,7 +59,7 @@ public:
 	:	g( g)
 	{ }
 
-	int locate( const geom::Coordinate * p)
+	int locate( const geom::Coordinate * p) override
 	{
 		return locate( *p, g);
 	}
diff --git a/include/geos/geom/CoordinateArraySequence.h b/include/geos/geom/CoordinateArraySequence.h
index edc1b9e..c080b63 100644
--- a/include/geos/geom/CoordinateArraySequence.h
+++ b/include/geos/geom/CoordinateArraySequence.h
@@ -41,22 +41,22 @@ public:
 
 	CoordinateArraySequence(const CoordinateSequence &cl);
 
-	CoordinateSequence *clone() const;
+	CoordinateSequence *clone() const override;
 
 	//const Coordinate& getCoordinate(int pos) const;
-	const Coordinate& getAt(std::size_t pos) const;
+	const Coordinate& getAt(std::size_t pos) const override;
 
 	/// Copy Coordinate at position i to Coordinate c
-	virtual void getAt(std::size_t i, Coordinate& c) const;
+	void getAt(std::size_t i, Coordinate& c) const override;
 
 	//int size() const;
-	size_t getSize() const;
+	size_t getSize() const override;
 
 	// @deprecated
-	const std::vector<Coordinate>* toVector() const;
+	const std::vector<Coordinate>* toVector() const override;
 
 	// See dox in CoordinateSequence.h
-	void toVector(std::vector<Coordinate>&) const;
+	void toVector(std::vector<Coordinate>&) const override;
 
 	/// Construct an empty sequence
 	CoordinateArraySequence();
@@ -68,18 +68,18 @@ public:
 	/// Construct sequence allocating space for n coordinates
 	CoordinateArraySequence(std::size_t n, std::size_t dimension = 0);
 
-	~CoordinateArraySequence();
+	~CoordinateArraySequence() override;
 
-	bool isEmpty() const { return empty(); }
+	bool isEmpty() const override { return empty(); }
 
 	bool empty() const { return vect->empty(); }
 
 	/// Reset this CoordinateArraySequence to the empty state
 	void clear() { vect->clear(); }
 
-	void add(const Coordinate& c);
+	void add(const Coordinate& c) override;
 
-	virtual void add(const Coordinate& c, bool allowRepeated);
+	void add(const Coordinate& c, bool allowRepeated) override;
 
 	/** \brief
 	 * Inserts the specified coordinate at the specified position in
@@ -92,31 +92,31 @@ public:
 	 *
 	 * NOTE: this is a CoordinateList interface in JTS
 	 */
-	virtual void add(std::size_t i, const Coordinate& coord, bool allowRepeated);
+	void add(std::size_t i, const Coordinate& coord, bool allowRepeated) override;
 
-	void setAt(const Coordinate& c, std::size_t pos);
+	void setAt(const Coordinate& c, std::size_t pos) override;
 
-	void deleteAt(std::size_t pos);
+	void deleteAt(std::size_t pos) override;
 
-	std::string toString() const;
+	std::string toString() const override;
 
-	void setPoints(const std::vector<Coordinate> &v);
+	void setPoints(const std::vector<Coordinate> &v) override;
 
 	double getOrdinate(std::size_t index,
-			size_t ordinateIndex) const;
+			size_t ordinateIndex) const override;
 
 	void setOrdinate(std::size_t index, std::size_t ordinateIndex,
-			double value);
+			double value) override;
 
-	void expandEnvelope(Envelope &env) const;
+	void expandEnvelope(Envelope &env) const override;
 
-    std::size_t getDimension() const;
+    std::size_t getDimension() const override;
 
-	void apply_rw(const CoordinateFilter *filter);
+	void apply_rw(const CoordinateFilter *filter) override;
 
-	void apply_ro(CoordinateFilter *filter) const;
+	void apply_ro(CoordinateFilter *filter) const override;
 
-	virtual CoordinateSequence& removeRepeatedPoints();
+	CoordinateSequence& removeRepeatedPoints() override;
 
 private:
 	std::vector<Coordinate> *vect;
diff --git a/include/geos/geom/CoordinateArraySequenceFactory.h b/include/geos/geom/CoordinateArraySequenceFactory.h
index 9d779af..3519480 100644
--- a/include/geos/geom/CoordinateArraySequenceFactory.h
+++ b/include/geos/geom/CoordinateArraySequenceFactory.h
@@ -43,14 +43,14 @@ namespace geom { // geos::geom
 class GEOS_DLL CoordinateArraySequenceFactory: public CoordinateSequenceFactory {
 
 public:
-	CoordinateSequence *create() const;
+	CoordinateSequence *create() const override;
 
-	CoordinateSequence *create(std::vector<Coordinate> *coords, std::size_t dims=0) const;
+	CoordinateSequence *create(std::vector<Coordinate> *coords, std::size_t dims=0) const override;
 
    	/** @see CoordinateSequenceFactory::create(std::size_t, int) */
-	CoordinateSequence *create(std::size_t size, std::size_t dimension=0) const;
+	CoordinateSequence *create(std::size_t size, std::size_t dimension=0) const override;
 
-	CoordinateSequence *create(const CoordinateSequence &coordSeq) const;
+	CoordinateSequence *create(const CoordinateSequence &coordSeq) const override;
 
 	/** \brief
 	 * Returns the singleton instance of CoordinateArraySequenceFactory
diff --git a/include/geos/geom/Geometry.h b/include/geos/geom/Geometry.h
index d82502a..4deb2e5 100644
--- a/include/geos/geom/Geometry.h
+++ b/include/geos/geom/Geometry.h
@@ -835,7 +835,7 @@ private:
 	class GEOS_DLL GeometryChangedFilter : public GeometryComponentFilter
 	{
 	public:
-		void filter_rw(Geometry* geom);
+		void filter_rw(Geometry* geom) override;
 	};
 
 	static GeometryChangedFilter geometryChangedFilter;
diff --git a/include/geos/geom/GeometryCollection.h b/include/geos/geom/GeometryCollection.h
index b7b5bbf..f5a2989 100644
--- a/include/geos/geom/GeometryCollection.h
+++ b/include/geos/geom/GeometryCollection.h
@@ -72,11 +72,11 @@ public:
 	 *
 	 * @return a clone of this instance
 	 */
-	virtual Geometry *clone() const {
+	Geometry *clone() const override {
 		return new GeometryCollection(*this);
 	}
 
-	virtual ~GeometryCollection();
+	~GeometryCollection() override;
 
 	/**
 	 * \brief
@@ -91,9 +91,9 @@ public:
 	 * @return the collected coordinates
 	 *
 	 */
-	virtual CoordinateSequence* getCoordinates() const;
+	CoordinateSequence* getCoordinates() const override;
 
-	virtual bool isEmpty() const;
+	bool isEmpty() const override;
 
 	/**
 	 * \brief
@@ -102,60 +102,60 @@ public:
 	 *
 	 * @see Dimension::DimensionType
 	 */
-	virtual Dimension::DimensionType getDimension() const;
+	Dimension::DimensionType getDimension() const override;
 
 	/// Returns coordinate dimension.
-	virtual int getCoordinateDimension() const;
+	int getCoordinateDimension() const override;
 
-	virtual Geometry* getBoundary() const;
+	Geometry* getBoundary() const override;
 
 	/**
 	 * \brief
 	 * Returns the maximum boundary dimension of geometries in
 	 * this collection.
 	 */
-	virtual int getBoundaryDimension() const;
+	int getBoundaryDimension() const override;
 
-	virtual std::size_t getNumPoints() const;
+	std::size_t getNumPoints() const override;
 
-	virtual std::string getGeometryType() const;
+	std::string getGeometryType() const override;
 
-	virtual GeometryTypeId getGeometryTypeId() const;
+	GeometryTypeId getGeometryTypeId() const override;
 
-	virtual bool equalsExact(const Geometry *other,
-			double tolerance=0) const;
+	bool equalsExact(const Geometry *other,
+			double tolerance=0) const override;
 
-	virtual void apply_ro(CoordinateFilter *filter) const;
+	void apply_ro(CoordinateFilter *filter) const override;
 
-	virtual void apply_rw(const CoordinateFilter *filter);
+	void apply_rw(const CoordinateFilter *filter) override;
 
-	virtual void apply_ro(GeometryFilter *filter) const;
+	void apply_ro(GeometryFilter *filter) const override;
 
-	virtual void apply_rw(GeometryFilter *filter);
+	void apply_rw(GeometryFilter *filter) override;
 
-	virtual void apply_ro(GeometryComponentFilter *filter) const;
+	void apply_ro(GeometryComponentFilter *filter) const override;
 
-	virtual void apply_rw(GeometryComponentFilter *filter);
+	void apply_rw(GeometryComponentFilter *filter) override;
 
-	virtual void apply_rw(CoordinateSequenceFilter& filter);
+	void apply_rw(CoordinateSequenceFilter& filter) override;
 
-	virtual void apply_ro(CoordinateSequenceFilter& filter) const;
+	void apply_ro(CoordinateSequenceFilter& filter) const override;
 
-	virtual void normalize();
+	void normalize() override;
 
-	virtual const Coordinate* getCoordinate() const;
+	const Coordinate* getCoordinate() const override;
 
 	/// Returns the total area of this collection
-	virtual double getArea() const;
+	double getArea() const override;
 
 	/// Returns the total length of this collection
-	virtual double getLength() const;
+	double getLength() const override;
 
 	/// Returns the number of geometries in this collection
-	virtual std::size_t getNumGeometries() const;
+	std::size_t getNumGeometries() const override;
 
 	/// Returns a pointer to the nth Geometry int this collection
-	virtual const Geometry* getGeometryN(std::size_t n) const;
+	const Geometry* getGeometryN(std::size_t n) const override;
 
 protected:
 
@@ -190,9 +190,9 @@ protected:
 
 	std::vector<Geometry *>* geometries;
 
-	Envelope::Ptr computeEnvelopeInternal() const;
+	Envelope::Ptr computeEnvelopeInternal() const override;
 
-	int compareToSameClass(const Geometry *gc) const;
+	int compareToSameClass(const Geometry *gc) const override;
 
 };
 
diff --git a/include/geos/geom/LineString.h b/include/geos/geom/LineString.h
index 72fa019..7b84299 100644
--- a/include/geos/geom/LineString.h
+++ b/include/geos/geom/LineString.h
@@ -76,7 +76,7 @@ public:
 	/// A vector of const LineString pointers
 	typedef std::vector<const LineString *> ConstVect;
 
-	virtual ~LineString();
+	~LineString() override;
 
 	/**
 	 * \brief
@@ -85,9 +85,9 @@ public:
 	 *
 	 * @return A clone of this instance
 	 */
-	virtual Geometry *clone() const;
+	Geometry *clone() const override;
 
-	virtual CoordinateSequence* getCoordinates() const;
+	CoordinateSequence* getCoordinates() const override;
 
 	/// Returns a read-only pointer to internal CoordinateSequence
 	const CoordinateSequence* getCoordinatesRO() const;
@@ -95,28 +95,28 @@ public:
 	virtual const Coordinate& getCoordinateN(int n) const;
 
 	/// Returns line dimension (1)
-	virtual Dimension::DimensionType getDimension() const;
+	Dimension::DimensionType getDimension() const override;
 
 	/**
 	 * \brief
 	 * Returns Dimension::False for a closed LineString,
 	 * 0 otherwise (LineString boundary is a MultiPoint)
 	 */
-	virtual int getBoundaryDimension() const;
+	int getBoundaryDimension() const override;
 
 	/// Returns coordinate dimension.
-	virtual int getCoordinateDimension() const;
+	int getCoordinateDimension() const override;
 
 	/**
 	 * \brief
 	 * Returns a MultiPoint.
 	 * Empty for closed LineString, a Point for each vertex otherwise.
 	 */
-	virtual Geometry* getBoundary() const;
+	Geometry* getBoundary() const override;
 
-	virtual bool isEmpty() const;
+	bool isEmpty() const override;
 
-	virtual std::size_t getNumPoints() const;
+	std::size_t getNumPoints() const override;
 
 	virtual Point* getPointN(std::size_t n) const;
 
@@ -136,30 +136,30 @@ public:
 
 	virtual bool isRing() const;
 
-	virtual std::string getGeometryType() const;
+	std::string getGeometryType() const override;
 
-	virtual GeometryTypeId getGeometryTypeId() const;
+	GeometryTypeId getGeometryTypeId() const override;
 
 	virtual bool isCoordinate(Coordinate& pt) const;
 
-	virtual bool equalsExact(const Geometry *other, double tolerance=0)
-		const;
+	bool equalsExact(const Geometry *other, double tolerance=0)
+		const override;
 
-	virtual void apply_rw(const CoordinateFilter *filter);
+	void apply_rw(const CoordinateFilter *filter) override;
 
-	virtual void apply_ro(CoordinateFilter *filter) const;
+	void apply_ro(CoordinateFilter *filter) const override;
 
-	virtual void apply_rw(GeometryFilter *filter);
+	void apply_rw(GeometryFilter *filter) override;
 
-	virtual void apply_ro(GeometryFilter *filter) const;
+	void apply_ro(GeometryFilter *filter) const override;
 
-	virtual void apply_rw(GeometryComponentFilter *filter);
+	void apply_rw(GeometryComponentFilter *filter) override;
 
-	virtual void apply_ro(GeometryComponentFilter *filter) const;
+	void apply_ro(GeometryComponentFilter *filter) const override;
 
-	void apply_rw(CoordinateSequenceFilter& filter);
+	void apply_rw(CoordinateSequenceFilter& filter) override;
 
-	void apply_ro(CoordinateSequenceFilter& filter) const;
+	void apply_ro(CoordinateSequenceFilter& filter) const override;
 
 	/** \brief
 	 * Normalizes a LineString.
@@ -168,14 +168,14 @@ public:
 	 * has the first point which is not equal to its reflected point
 	 * less than the reflected point.
 	 */
-	virtual void normalize();
+	void normalize() override;
 
 	//was protected
-	virtual int compareToSameClass(const Geometry *ls) const;
+	int compareToSameClass(const Geometry *ls) const override;
 
-	virtual const Coordinate* getCoordinate() const;
+	const Coordinate* getCoordinate() const override;
 
-	virtual double getLength() const;
+	double getLength() const override;
 
 	/**
 	 * Creates a LineString whose coordinates are in the reverse
@@ -198,7 +198,7 @@ protected:
 	LineString(CoordinateSequence::Ptr pts,
 			const GeometryFactory *newFactory);
 
-	Envelope::Ptr computeEnvelopeInternal() const;
+	Envelope::Ptr computeEnvelopeInternal() const override;
 
 	CoordinateSequence::Ptr points;
 
diff --git a/include/geos/geom/LinearRing.h b/include/geos/geom/LinearRing.h
index 873dd8a..4b34776 100644
--- a/include/geos/geom/LinearRing.h
+++ b/include/geos/geom/LinearRing.h
@@ -85,9 +85,9 @@ public:
 	LinearRing(CoordinateSequence::Ptr points,
 			const GeometryFactory *newFactory);
 
-	virtual Geometry *clone() const { return new LinearRing(*this); }
+	Geometry *clone() const override { return new LinearRing(*this); }
 
-	virtual ~LinearRing();
+	~LinearRing() override;
 
 	/** \brief
 	 * Returns <code>Dimension.FALSE</code>, since by definition
@@ -95,7 +95,7 @@ public:
 	 *
 	 * @return Dimension::False
 	 */
-	int getBoundaryDimension() const;
+	int getBoundaryDimension() const override;
 
 	/** \brief
 	 * Returns <code>true</code>, since by definition LinearRings
@@ -105,13 +105,13 @@ public:
 	 *
 	 * @see Geometry::isSimple
 	 */
-	bool isSimple() const;
+	bool isSimple() const override;
 
-	bool isClosed() const;
+	bool isClosed() const override;
 
-	std::string getGeometryType() const;
+	std::string getGeometryType() const override;
 
-	virtual GeometryTypeId getGeometryTypeId() const;
+	GeometryTypeId getGeometryTypeId() const override;
 
 	void setPoints(CoordinateSequence* cl);
 
diff --git a/include/geos/geom/MultiLineString.h b/include/geos/geom/MultiLineString.h
index c652fb3..da411bf 100644
--- a/include/geos/geom/MultiLineString.h
+++ b/include/geos/geom/MultiLineString.h
@@ -54,30 +54,30 @@ public:
 
 	friend class GeometryFactory;
 
-	virtual ~MultiLineString();
+	~MultiLineString() override;
 
 	/// Returns line dimension (1)
-	Dimension::DimensionType getDimension() const;
+	Dimension::DimensionType getDimension() const override;
 
 	/**
 	 * \brief
 	 * Returns Dimension::False if all LineStrings in the collection
 	 * are closed, 0 otherwise.
 	 */
-	int getBoundaryDimension() const;
+	int getBoundaryDimension() const override;
 
 	/// Returns a (possibly empty) MultiPoint
-	Geometry* getBoundary() const;
+	Geometry* getBoundary() const override;
 
-	std::string getGeometryType() const;
+	std::string getGeometryType() const override;
 
-	virtual GeometryTypeId getGeometryTypeId() const;
+	GeometryTypeId getGeometryTypeId() const override;
 
 	bool isClosed() const;
 
-	bool equalsExact(const Geometry *other, double tolerance=0) const;
+	bool equalsExact(const Geometry *other, double tolerance=0) const override;
 
-	Geometry *clone() const;
+	Geometry *clone() const override;
 
 	/**
 	 * Creates a MultiLineString in the reverse
diff --git a/include/geos/geom/MultiPoint.h b/include/geos/geom/MultiPoint.h
index eec7419..5dac6e0 100644
--- a/include/geos/geom/MultiPoint.h
+++ b/include/geos/geom/MultiPoint.h
@@ -59,13 +59,13 @@ public:
 
 	friend class GeometryFactory;
 
-	virtual ~MultiPoint();
+	~MultiPoint() override;
 
 	/// Returns point dimension (0)
-	Dimension::DimensionType getDimension() const;
+	Dimension::DimensionType getDimension() const override;
 
 	/// Returns Dimension::False (Point has no boundary)
-	int getBoundaryDimension() const;
+	int getBoundaryDimension() const override;
 
 	/** \brief
 	 * Gets the boundary of this geometry.
@@ -76,15 +76,15 @@ public:
 	 * @return an empty GeometryCollection
 	 * @see Geometry#getBoundary
 	 */
-	Geometry* getBoundary() const;
+	Geometry* getBoundary() const override;
 
-	std::string getGeometryType() const;
+	std::string getGeometryType() const override;
 
-	virtual GeometryTypeId getGeometryTypeId() const;
+	GeometryTypeId getGeometryTypeId() const override;
 
-	bool equalsExact(const Geometry *other, double tolerance=0) const;
+	bool equalsExact(const Geometry *other, double tolerance=0) const override;
 
-	Geometry *clone() const { return new MultiPoint(*this); }
+	Geometry *clone() const override { return new MultiPoint(*this); }
 
 protected:
 
diff --git a/include/geos/geom/MultiPolygon.h b/include/geos/geom/MultiPolygon.h
index 9bf6428..bb4ce98 100644
--- a/include/geos/geom/MultiPolygon.h
+++ b/include/geos/geom/MultiPolygon.h
@@ -63,13 +63,13 @@ public:
 
 	friend class GeometryFactory;
 
-	virtual ~MultiPolygon();
+	~MultiPolygon() override;
 
 	/// Returns surface dimension (2)
-	Dimension::DimensionType getDimension() const;
+	Dimension::DimensionType getDimension() const override;
 
 	/// Returns 1 (MultiPolygon boundary is MultiLineString)
-	int getBoundaryDimension() const;
+	int getBoundaryDimension() const override;
 
 	/** \brief
 	 * Computes the boundary of this geometry
@@ -77,17 +77,17 @@ public:
 	 * @return a lineal geometry (which may be empty)
 	 * @see Geometry#getBoundary
 	 */
-	Geometry* getBoundary() const;
+	Geometry* getBoundary() const override;
 
-	std::string getGeometryType() const;
+	std::string getGeometryType() const override;
 
-	virtual GeometryTypeId getGeometryTypeId() const;
+	GeometryTypeId getGeometryTypeId() const override;
 
-	bool isSimple() const;
+	bool isSimple() const override;
 
-	bool equalsExact(const Geometry *other, double tolerance=0) const;
+	bool equalsExact(const Geometry *other, double tolerance=0) const override;
 
-	Geometry *clone() const;
+	Geometry *clone() const override;
 
 protected:
 
diff --git a/include/geos/geom/Point.h b/include/geos/geom/Point.h
index 14a5956..16e25b1 100644
--- a/include/geos/geom/Point.h
+++ b/include/geos/geom/Point.h
@@ -74,7 +74,7 @@ public:
 	/// A vector of const Point pointers
 	typedef std::vector<const Point *> ConstVect;
 
-	virtual ~Point();
+	~Point() override;
 
 	/**
 	 * Creates and returns a full copy of this {@link Point} object.
@@ -82,24 +82,24 @@ public:
 	 *
 	 * @return a clone of this instance
 	 */
-	Geometry *clone() const { return new Point(*this); }
+	Geometry *clone() const override { return new Point(*this); }
 
-	CoordinateSequence* getCoordinates(void) const;
+	CoordinateSequence* getCoordinates(void) const override;
 
 	const CoordinateSequence* getCoordinatesRO() const;
 
-	size_t getNumPoints() const;
-	bool isEmpty() const;
-	bool isSimple() const;
+	size_t getNumPoints() const override;
+	bool isEmpty() const override;
+	bool isSimple() const override;
 
 	/// Returns point dimension (0)
-	Dimension::DimensionType getDimension() const;
+	Dimension::DimensionType getDimension() const override;
 
 	/// Returns coordinate dimension.
-	virtual int getCoordinateDimension() const;
+	int getCoordinateDimension() const override;
 
 	/// Returns Dimension::False (Point has no boundary)
-	int getBoundaryDimension() const;
+	int getBoundaryDimension() const override;
 
 	/**
 	 * Gets the boundary of this geometry.
@@ -109,25 +109,25 @@ public:
 	 * @return an empty GeometryCollection
 	 * @see Geometry::getBoundary
 	 */
-	Geometry* getBoundary() const;
+	Geometry* getBoundary() const override;
 
 	double getX() const;
 	double getY() const;
-	const Coordinate* getCoordinate() const;
-	std::string getGeometryType() const;
-	virtual GeometryTypeId getGeometryTypeId() const;
-	void apply_ro(CoordinateFilter *filter) const;
-	void apply_rw(const CoordinateFilter *filter);
-	void apply_ro(GeometryFilter *filter) const;
-	void apply_rw(GeometryFilter *filter);
-	void apply_rw(GeometryComponentFilter *filter);
-	void apply_ro(GeometryComponentFilter *filter) const;
-	void apply_rw(CoordinateSequenceFilter& filter);
-	void apply_ro(CoordinateSequenceFilter& filter) const;
-
-	bool equalsExact(const Geometry *other, double tolerance=0) const;
-
-	void normalize(void)
+	const Coordinate* getCoordinate() const override;
+	std::string getGeometryType() const override;
+	GeometryTypeId getGeometryTypeId() const override;
+	void apply_ro(CoordinateFilter *filter) const override;
+	void apply_rw(const CoordinateFilter *filter) override;
+	void apply_ro(GeometryFilter *filter) const override;
+	void apply_rw(GeometryFilter *filter) override;
+	void apply_rw(GeometryComponentFilter *filter) override;
+	void apply_ro(GeometryComponentFilter *filter) const override;
+	void apply_rw(CoordinateSequenceFilter& filter) override;
+	void apply_ro(CoordinateSequenceFilter& filter) const override;
+
+	bool equalsExact(const Geometry *other, double tolerance=0) const override;
+
+	void normalize(void) override
 	{
 		// a Point is always in normalized form
 	}
@@ -155,9 +155,9 @@ protected:
 
 	Point(const Point &p);
 
-	Envelope::Ptr computeEnvelopeInternal() const;
+	Envelope::Ptr computeEnvelopeInternal() const override;
 
-	int compareToSameClass(const Geometry *p) const;
+	int compareToSameClass(const Geometry *p) const override;
 
 private:
 
diff --git a/include/geos/geom/Polygon.h b/include/geos/geom/Polygon.h
index 500a384..fd3d412 100644
--- a/include/geos/geom/Polygon.h
+++ b/include/geos/geom/Polygon.h
@@ -73,7 +73,7 @@ public:
 	/// A vector of const Polygon pointers
 	typedef std::vector<const Polygon *> ConstVect;
 
-	virtual ~Polygon();
+	~Polygon() override;
 
 	/**
 	 * Creates and returns a full copy of this {@link Polygon} object.
@@ -81,20 +81,20 @@ public:
 	 *
 	 * @return a clone of this instance
 	 */
-	virtual Geometry *clone() const { return new Polygon(*this); }
+	Geometry *clone() const override { return new Polygon(*this); }
 
-	CoordinateSequence* getCoordinates() const;
+	CoordinateSequence* getCoordinates() const override;
 
-	size_t getNumPoints() const;
+	size_t getNumPoints() const override;
 
 	/// Returns surface dimension (2)
-	Dimension::DimensionType getDimension() const;
+	Dimension::DimensionType getDimension() const override;
 
 	/// Returns coordinate dimension.
-	virtual int getCoordinateDimension() const;
+	int getCoordinateDimension() const override;
 
 	/// Returns 1 (Polygon boundary is a MultiLineString)
-	int getBoundaryDimension() const;
+	int getBoundaryDimension() const override;
 
 	/** \brief
 	 * Computes the boundary of this geometry
@@ -102,9 +102,9 @@ public:
 	 * @return a lineal geometry (which may be empty)
 	 * @see Geometry#getBoundary
 	 */
-	Geometry* getBoundary() const;
+	Geometry* getBoundary() const override;
 
-	bool isEmpty() const;
+	bool isEmpty() const override;
 
 	/** \brief
 	 * Tests if a valid polygon is simple.
@@ -112,7 +112,7 @@ public:
 	 *
 	 * @return <code>true</code>
 	 */
-	bool isSimple() const;
+	bool isSimple() const override;
 
 	/// Returns the exterior ring (shell)
 	const LineString* getExteriorRing() const;
@@ -123,34 +123,34 @@ public:
 	/// Get nth interior ring (hole)
 	const LineString* getInteriorRingN(std::size_t n) const;
 
-	std::string getGeometryType() const;
-	virtual GeometryTypeId getGeometryTypeId() const;
-	bool equalsExact(const Geometry *other, double tolerance=0) const;
-	void apply_rw(const CoordinateFilter *filter);
-	void apply_ro(CoordinateFilter *filter) const;
-	void apply_rw(GeometryFilter *filter);
-	void apply_ro(GeometryFilter *filter) const;
-	void apply_rw(CoordinateSequenceFilter& filter);
-	void apply_ro(CoordinateSequenceFilter& filter) const;
+	std::string getGeometryType() const override;
+	GeometryTypeId getGeometryTypeId() const override;
+	bool equalsExact(const Geometry *other, double tolerance=0) const override;
+	void apply_rw(const CoordinateFilter *filter) override;
+	void apply_ro(CoordinateFilter *filter) const override;
+	void apply_rw(GeometryFilter *filter) override;
+	void apply_ro(GeometryFilter *filter) const override;
+	void apply_rw(CoordinateSequenceFilter& filter) override;
+	void apply_ro(CoordinateSequenceFilter& filter) const override;
 
-	Geometry* convexHull() const;
+	Geometry* convexHull() const override;
 
-	void normalize();
+	void normalize() override;
 
-	int compareToSameClass(const Geometry *p) const; //was protected
+	int compareToSameClass(const Geometry *p) const override; //was protected
 
-	const Coordinate* getCoordinate() const;
+	const Coordinate* getCoordinate() const override;
 
-	double getArea() const;
+	double getArea() const override;
 
  	/// Returns the perimeter of this <code>Polygon</code>
-	double getLength() const;
+	double getLength() const override;
 
-	void apply_rw(GeometryComponentFilter *filter);
+	void apply_rw(GeometryComponentFilter *filter) override;
 
-	void apply_ro(GeometryComponentFilter *filter) const;
+	void apply_ro(GeometryComponentFilter *filter) const override;
 
-	bool isRectangle() const;
+	bool isRectangle() const override;
 
 protected:
 
@@ -182,7 +182,7 @@ protected:
 
 	std::vector<Geometry *> *holes; //Actually vector<LinearRing *>
 
-	Envelope::Ptr computeEnvelopeInternal() const;
+	Envelope::Ptr computeEnvelopeInternal() const override;
 
 private:
 
diff --git a/include/geos/geom/prep/AbstractPreparedPolygonContains.h b/include/geos/geom/prep/AbstractPreparedPolygonContains.h
index 9e0a19d..6bd4e90 100644
--- a/include/geos/geom/prep/AbstractPreparedPolygonContains.h
+++ b/include/geos/geom/prep/AbstractPreparedPolygonContains.h
@@ -125,7 +125,7 @@ public:
 		requireSomePointInInterior(requireSomePointInInterior)
 	{ }
 
-	virtual ~AbstractPreparedPolygonContains()
+	~AbstractPreparedPolygonContains() override
 	{ }
 
 };
diff --git a/include/geos/geom/prep/BasicPreparedGeometry.h b/include/geos/geom/prep/BasicPreparedGeometry.h
index 87d327b..a084ab6 100644
--- a/include/geos/geom/prep/BasicPreparedGeometry.h
+++ b/include/geos/geom/prep/BasicPreparedGeometry.h
@@ -90,9 +90,9 @@ protected:
 public:
 	BasicPreparedGeometry( const Geometry * geom);
 
-	~BasicPreparedGeometry( );
+	~BasicPreparedGeometry( ) override;
 
-	const geom::Geometry & getGeometry() const
+	const geom::Geometry & getGeometry() const override
 	{
 		return *baseGeom;
 	}
@@ -123,53 +123,53 @@ public:
 	/**
 	 * Default implementation.
 	 */
-	bool contains(const geom::Geometry * g) const;
+	bool contains(const geom::Geometry * g) const override;
 
 	/**
 	 * Default implementation.
 	 */
-	bool containsProperly(const geom::Geometry * g)	const;
+	bool containsProperly(const geom::Geometry * g)	const override;
 
 	/**
 	 * Default implementation.
 	 */
-	bool coveredBy(const geom::Geometry * g) const;
+	bool coveredBy(const geom::Geometry * g) const override;
 
 	/**
 	 * Default implementation.
 	 */
-	bool covers(const geom::Geometry * g) const;
+	bool covers(const geom::Geometry * g) const override;
 
 	/**
 	 * Default implementation.
 	 */
-	bool crosses(const geom::Geometry * g) const;
+	bool crosses(const geom::Geometry * g) const override;
 
 	/**
 	 * Standard implementation for all geometries.
 	 * Supports {@link GeometryCollection}s as input.
 	 */
-	bool disjoint(const geom::Geometry * g)	const;
+	bool disjoint(const geom::Geometry * g)	const override;
 
 	/**
 	 * Default implementation.
 	 */
-	bool intersects(const geom::Geometry * g) const;
+	bool intersects(const geom::Geometry * g) const override;
 
 	/**
 	 * Default implementation.
 	 */
-	bool overlaps(const geom::Geometry * g)	const;
+	bool overlaps(const geom::Geometry * g)	const override;
 
 	/**
 	 * Default implementation.
 	 */
-	bool touches(const geom::Geometry * g) const;
+	bool touches(const geom::Geometry * g) const override;
 
 	/**
 	 * Default implementation.
 	 */
-	bool within(const geom::Geometry * g) const;
+	bool within(const geom::Geometry * g) const override;
 
 	std::string toString();
 
diff --git a/include/geos/geom/prep/PreparedLineString.h b/include/geos/geom/prep/PreparedLineString.h
index 4001966..d804b80 100644
--- a/include/geos/geom/prep/PreparedLineString.h
+++ b/include/geos/geom/prep/PreparedLineString.h
@@ -54,11 +54,11 @@ public:
 		segIntFinder( nullptr)
 	{ }
 
-	~PreparedLineString();
+	~PreparedLineString() override;
 
 	noding::FastSegmentSetIntersectionFinder * getIntersectionFinder();
 
-	bool intersects(const geom::Geometry * g) const;
+	bool intersects(const geom::Geometry * g) const override;
 
 };
 
diff --git a/include/geos/geom/prep/PreparedPoint.h b/include/geos/geom/prep/PreparedPoint.h
index 7fc0943..6355f07 100644
--- a/include/geos/geom/prep/PreparedPoint.h
+++ b/include/geos/geom/prep/PreparedPoint.h
@@ -48,7 +48,7 @@ public:
 	 * The optimization here is that computing topology for the test
 	 * geometry is avoided. This can be significant for large geometries.
 	 */
-	bool intersects(const geom::Geometry* g) const;
+	bool intersects(const geom::Geometry* g) const override;
 
 };
 
diff --git a/include/geos/geom/prep/PreparedPolygon.h b/include/geos/geom/prep/PreparedPolygon.h
index d9552b6..0bfde3d 100644
--- a/include/geos/geom/prep/PreparedPolygon.h
+++ b/include/geos/geom/prep/PreparedPolygon.h
@@ -56,15 +56,15 @@ private:
 protected:
 public:
 	PreparedPolygon( const geom::Geometry * geom);
-	~PreparedPolygon( );
+	~PreparedPolygon( ) override;
 
 	noding::FastSegmentSetIntersectionFinder * getIntersectionFinder() const;
 	algorithm::locate::PointOnGeometryLocator * getPointLocator() const;
 
-	bool contains( const geom::Geometry* g) const;
-	bool containsProperly( const geom::Geometry* g) const;
-	bool covers( const geom::Geometry* g) const;
-	bool intersects( const geom::Geometry* g) const;
+	bool contains( const geom::Geometry* g) const override;
+	bool containsProperly( const geom::Geometry* g) const override;
+	bool covers( const geom::Geometry* g) const override;
+	bool intersects( const geom::Geometry* g) const override;
 
 };
 
diff --git a/include/geos/geom/prep/PreparedPolygonContains.h b/include/geos/geom/prep/PreparedPolygonContains.h
index f8b4765..bf76452 100644
--- a/include/geos/geom/prep/PreparedPolygonContains.h
+++ b/include/geos/geom/prep/PreparedPolygonContains.h
@@ -95,7 +95,7 @@ protected:
 	* @param geom the test geometry
 	* @return true if this prepared polygon contains the test geometry
 	*/
-	bool fullTopologicalPredicate(const geom::Geometry * geom);
+	bool fullTopologicalPredicate(const geom::Geometry * geom) override;
 
 };
 
diff --git a/include/geos/geom/prep/PreparedPolygonCovers.h b/include/geos/geom/prep/PreparedPolygonCovers.h
index 149b005..f633523 100644
--- a/include/geos/geom/prep/PreparedPolygonCovers.h
+++ b/include/geos/geom/prep/PreparedPolygonCovers.h
@@ -63,7 +63,7 @@ protected:
 	 * @param geom the test geometry
 	 * @return true if this prepared polygon covers the test geometry
 	 */
-	bool fullTopologicalPredicate( const geom::Geometry * geom);
+	bool fullTopologicalPredicate( const geom::Geometry * geom) override;
 
 public:
 	/**
diff --git a/include/geos/geom/util/ComponentCoordinateExtracter.h b/include/geos/geom/util/ComponentCoordinateExtracter.h
index 6e577ca..3f54ab6 100644
--- a/include/geos/geom/util/ComponentCoordinateExtracter.h
+++ b/include/geos/geom/util/ComponentCoordinateExtracter.h
@@ -53,9 +53,9 @@ public:
 	 */
 	ComponentCoordinateExtracter( std::vector<const Coordinate*> &newComps);
 
-	void filter_rw( Geometry * geom);
+	void filter_rw( Geometry * geom) override;
 
-	void filter_ro( const Geometry * geom);
+	void filter_ro( const Geometry * geom) override;
 
 private:
 
diff --git a/include/geos/geom/util/CoordinateOperation.h b/include/geos/geom/util/CoordinateOperation.h
index dafc329..8b87cf4 100644
--- a/include/geos/geom/util/CoordinateOperation.h
+++ b/include/geos/geom/util/CoordinateOperation.h
@@ -45,8 +45,8 @@ public:
 	/**
 	 * Return a newly created geometry, ownership to caller
 	 */
-	virtual Geometry* edit(const Geometry *geometry,
-			const GeometryFactory *factory);
+	Geometry* edit(const Geometry *geometry,
+			const GeometryFactory *factory) override;
 
 	/**
 	 * Edits the array of Coordinate from a Geometry.
@@ -60,7 +60,7 @@ public:
 			const Geometry *geometry)=0;
 
 
-	virtual ~CoordinateOperation() {}
+	~CoordinateOperation() override {}
 };
 
 
diff --git a/include/geos/geom/util/GeometryExtracter.h b/include/geos/geom/util/GeometryExtracter.h
index db5c2c7..827ec54 100644
--- a/include/geos/geom/util/GeometryExtracter.h
+++ b/include/geos/geom/util/GeometryExtracter.h
@@ -74,7 +74,7 @@ private:
 
     TargetContainer& comps_;
 
-    void filter_ro(const Geometry* geom)
+    void filter_ro(const Geometry* geom) override
     {
       if ( const ComponentType* c = dynamic_cast<const ComponentType*>(geom) ) {
         comps_.push_back(c);
diff --git a/include/geos/geom/util/LinearComponentExtracter.h b/include/geos/geom/util/LinearComponentExtracter.h
index d86406a..1f2b4e7 100644
--- a/include/geos/geom/util/LinearComponentExtracter.h
+++ b/include/geos/geom/util/LinearComponentExtracter.h
@@ -57,9 +57,9 @@ public:
 	 */
 	LinearComponentExtracter(std::vector<const LineString*> &newComps);
 
-	void filter_rw(Geometry *geom);
+	void filter_rw(Geometry *geom) override;
 
-	void filter_ro(const Geometry *geom);
+	void filter_ro(const Geometry *geom) override;
 
 };
 
diff --git a/include/geos/geom/util/PointExtracter.h b/include/geos/geom/util/PointExtracter.h
index 4e81249..a9449c3 100644
--- a/include/geos/geom/util/PointExtracter.h
+++ b/include/geos/geom/util/PointExtracter.h
@@ -46,9 +46,9 @@ public:
 	 */
 	PointExtracter(Point::ConstVect& newComps);
 
-	void filter_rw(Geometry *geom);
+	void filter_rw(Geometry *geom) override;
 
-	void filter_ro(const Geometry *geom);
+	void filter_ro(const Geometry *geom) override;
 
 private:
 
diff --git a/include/geos/geom/util/PolygonExtracter.h b/include/geos/geom/util/PolygonExtracter.h
index bab2a82..fe5b6b2 100644
--- a/include/geos/geom/util/PolygonExtracter.h
+++ b/include/geos/geom/util/PolygonExtracter.h
@@ -48,9 +48,9 @@ public:
 	 */
 	PolygonExtracter(std::vector<const Polygon*>& newComps);
 
-	void filter_rw(Geometry *geom);
+	void filter_rw(Geometry *geom) override;
 
-	void filter_ro(const Geometry *geom);
+	void filter_ro(const Geometry *geom) override;
 
 private:
 
diff --git a/include/geos/geomgraph/DirectedEdge.h b/include/geos/geomgraph/DirectedEdge.h
index 6136555..ee992d5 100644
--- a/include/geos/geomgraph/DirectedEdge.h
+++ b/include/geos/geomgraph/DirectedEdge.h
@@ -142,7 +142,7 @@ public:
 	 */
 	void setEdgeDepths(int position, int newDepth);
 
-	virtual std::string print() const;
+	std::string print() const override;
 
 	std::string printEdge();
 
diff --git a/include/geos/geomgraph/DirectedEdgeStar.h b/include/geos/geomgraph/DirectedEdgeStar.h
index 325bada..6af6bcb 100644
--- a/include/geos/geomgraph/DirectedEdgeStar.h
+++ b/include/geos/geomgraph/DirectedEdgeStar.h
@@ -63,12 +63,12 @@ public:
 		label()
 	{}
 
-	~DirectedEdgeStar() {
+	~DirectedEdgeStar() override {
 		delete resultAreaEdgeList;
 	}
 
 	/// Insert a directed edge in the list
-	void insert(EdgeEnd *ee);
+	void insert(EdgeEnd *ee) override;
 
 	Label &getLabel() { return label; }
 
@@ -82,7 +82,7 @@ public:
 	 * Compute the labelling for all dirEdges in this star, as well
 	 * as the overall labelling
 	 */
-	void computeLabelling(std::vector<GeometryGraph*> *geom); // throw(TopologyException *);
+	void computeLabelling(std::vector<GeometryGraph*> *geom) override; // throw(TopologyException *);
 
 	/** \brief
 	 * For each dirEdge in the star,
@@ -132,7 +132,7 @@ public:
 	 */
 	void computeDepths(DirectedEdge *de);
 
-	virtual std::string print() const;
+	std::string print() const override;
 
 private:
 
diff --git a/include/geos/geomgraph/Edge.h b/include/geos/geomgraph/Edge.h
index 2f225c3..1583e2a 100644
--- a/include/geos/geomgraph/Edge.h
+++ b/include/geos/geomgraph/Edge.h
@@ -107,7 +107,7 @@ public:
 	/// Takes ownership of CoordinateSequence
 	Edge(geom::CoordinateSequence* newPts);
 
-	virtual ~Edge();
+	~Edge() override;
 
 	virtual int getNumPoints() const {
 		return static_cast<int>(pts->getSize());
@@ -187,7 +187,7 @@ public:
 		testInvariant();
 	}
 
-	virtual bool isIsolated() const {
+	bool isIsolated() const override {
 		testInvariant();
 		return isIsolatedVar;
 	}
@@ -212,7 +212,7 @@ public:
 	/// A component only contributes if it has a labelling for both
 	/// parent geometries
 	///
-	virtual void computeIM(geom::IntersectionMatrix& im) {
+	void computeIM(geom::IntersectionMatrix& im) override {
 		updateIM(label, im);
 		testInvariant();
 	}
diff --git a/include/geos/geomgraph/GeometryGraph.h b/include/geos/geomgraph/GeometryGraph.h
index 0a9f42e..bb59761 100644
--- a/include/geos/geomgraph/GeometryGraph.h
+++ b/include/geos/geomgraph/GeometryGraph.h
@@ -175,7 +175,7 @@ public:
 	GeometryGraph(int newArgIndex, const geom::Geometry *newParentGeom,
 	              const algorithm::BoundaryNodeRule& boundaryNodeRule);
 
-	virtual ~GeometryGraph();
+	~GeometryGraph() override;
 
 
 	const geom::Geometry* getGeometry();
diff --git a/include/geos/geomgraph/Node.h b/include/geos/geomgraph/Node.h
index 80dc64e..1072fa6 100644
--- a/include/geos/geomgraph/Node.h
+++ b/include/geos/geomgraph/Node.h
@@ -68,13 +68,13 @@ public:
 
 	Node(const geom::Coordinate& newCoord, EdgeEndStar* newEdges);
 
-	virtual ~Node();
+	~Node() override;
 
 	virtual const geom::Coordinate& getCoordinate() const;
 
 	virtual EdgeEndStar* getEdges();
 
-	virtual bool isIsolated() const;
+	bool isIsolated() const override;
 
 	/** \brief
 	 * Add the edge to the list of edges at this node
@@ -140,7 +140,7 @@ protected:
 	/** \brief
 	 * Basic nodes do not compute IMs
 	 */
-	virtual void computeIM(geom::IntersectionMatrix& /*im*/) {}
+	void computeIM(geom::IntersectionMatrix& /*im*/) override {}
 
 private:
 
diff --git a/include/geos/geomgraph/index/MonotoneChain.h b/include/geos/geomgraph/index/MonotoneChain.h
index 0231b3f..f19c463 100644
--- a/include/geos/geomgraph/index/MonotoneChain.h
+++ b/include/geos/geomgraph/index/MonotoneChain.h
@@ -53,7 +53,7 @@ public:
 		chainIndex(newChainIndex)
 	{}
 
-	~MonotoneChain() {}
+	~MonotoneChain() override {}
 
 	void computeIntersections(MonotoneChain *mc,SegmentIntersector *si) {
 		mce->computeIntersectsForChain(chainIndex,*(mc->mce),mc->chainIndex,*si);
diff --git a/include/geos/geomgraph/index/SimpleEdgeSetIntersector.h b/include/geos/geomgraph/index/SimpleEdgeSetIntersector.h
index e0be762..78d41ab 100644
--- a/include/geos/geomgraph/index/SimpleEdgeSetIntersector.h
+++ b/include/geos/geomgraph/index/SimpleEdgeSetIntersector.h
@@ -42,10 +42,10 @@ public:
 	SimpleEdgeSetIntersector();
 
 	void computeIntersections(std::vector<Edge*> *edges,
-			SegmentIntersector *si, bool testAllSegments);
+			SegmentIntersector *si, bool testAllSegments) override;
 
 	void computeIntersections(std::vector<Edge*> *edges0,
-			std::vector<Edge*> *edges1, SegmentIntersector *si);
+			std::vector<Edge*> *edges1, SegmentIntersector *si) override;
 
 private:
 
diff --git a/include/geos/geomgraph/index/SimpleMCSweepLineIntersector.h b/include/geos/geomgraph/index/SimpleMCSweepLineIntersector.h
index f326d49..d88bdc3 100644
--- a/include/geos/geomgraph/index/SimpleMCSweepLineIntersector.h
+++ b/include/geos/geomgraph/index/SimpleMCSweepLineIntersector.h
@@ -57,14 +57,14 @@ public:
 
 	SimpleMCSweepLineIntersector();
 
-	virtual ~SimpleMCSweepLineIntersector();
+	~SimpleMCSweepLineIntersector() override;
 
 	void computeIntersections(std::vector<Edge*> *edges,
-			SegmentIntersector *si, bool testAllSegments);
+			SegmentIntersector *si, bool testAllSegments) override;
 
 	void computeIntersections(std::vector<Edge*> *edges0,
 			std::vector<Edge*> *edges1,
-			SegmentIntersector *si);
+			SegmentIntersector *si) override;
 
 protected:
 
diff --git a/include/geos/geomgraph/index/SimpleSweepLineIntersector.h b/include/geos/geomgraph/index/SimpleSweepLineIntersector.h
index 6b06d3d..cd8c84d 100644
--- a/include/geos/geomgraph/index/SimpleSweepLineIntersector.h
+++ b/include/geos/geomgraph/index/SimpleSweepLineIntersector.h
@@ -54,15 +54,15 @@ public:
 
 	SimpleSweepLineIntersector();
 
-	virtual ~SimpleSweepLineIntersector();
+	~SimpleSweepLineIntersector() override;
 
 	void computeIntersections(std::vector<Edge*> *edges,
 			SegmentIntersector *si,
-			bool testAllSegments);
+			bool testAllSegments) override;
 
 	void computeIntersections(std::vector<Edge*> *edges0,
 			std::vector<Edge*> *edges1,
-			SegmentIntersector *si);
+			SegmentIntersector *si) override;
 
 private:
 
diff --git a/include/geos/geomgraph/index/SweepLineSegment.h b/include/geos/geomgraph/index/SweepLineSegment.h
index a5f9973..d6c8f35 100644
--- a/include/geos/geomgraph/index/SweepLineSegment.h
+++ b/include/geos/geomgraph/index/SweepLineSegment.h
@@ -40,7 +40,7 @@ namespace index { // geos::geomgraph::index
 class GEOS_DLL SweepLineSegment: public SweepLineEventOBJ {
 public:
 	SweepLineSegment(Edge *newEdge, int newPtIndex);
-	~SweepLineSegment();
+	~SweepLineSegment() override;
 	double getMinX();
 	double getMaxX();
 	void computeIntersections(SweepLineSegment *ss, SegmentIntersector *si);
diff --git a/include/geos/index/bintree/Node.h b/include/geos/index/bintree/Node.h
index 7a63a98..8e92a49 100644
--- a/include/geos/index/bintree/Node.h
+++ b/include/geos/index/bintree/Node.h
@@ -42,7 +42,7 @@ public:
 
 	Node(Interval *newInterval,int newLevel);
 
-	~Node();
+	~Node() override;
 
 	Interval* getInterval();
 
@@ -66,7 +66,7 @@ private:
 
 protected:
 
-	bool isSearchMatch(Interval *itemInterval);
+	bool isSearchMatch(Interval *itemInterval) override;
 };
 
 } // namespace geos::index::bintree
diff --git a/include/geos/index/bintree/Root.h b/include/geos/index/bintree/Root.h
index dc0c174..ec90980 100644
--- a/include/geos/index/bintree/Root.h
+++ b/include/geos/index/bintree/Root.h
@@ -53,7 +53,7 @@ public:
 
 	Root() {}
 
-	~Root() {}
+	~Root() override {}
 
 	/// @param itemInterval
 	///     Ownership left to caller, references kept in this class.
@@ -65,7 +65,7 @@ public:
 
 protected:
 
-	bool isSearchMatch(Interval* /*interval*/) { return true; }
+	bool isSearchMatch(Interval* /*interval*/) override { return true; }
 };
 
 } // namespace geos::index::bintree
diff --git a/include/geos/index/intervalrtree/IntervalRTreeBranchNode.h b/include/geos/index/intervalrtree/IntervalRTreeBranchNode.h
index e55ccfd..97347aa 100644
--- a/include/geos/index/intervalrtree/IntervalRTreeBranchNode.h
+++ b/include/geos/index/intervalrtree/IntervalRTreeBranchNode.h
@@ -52,14 +52,14 @@ public:
 		node2( n2)
 	{ }
 
-	~IntervalRTreeBranchNode()
+	~IntervalRTreeBranchNode() override
 	{
 		delete node1;
 		delete node2;
 	}
 
 
-	void query(double queryMin, double queryMax, index::ItemVisitor * visitor) const;
+	void query(double queryMin, double queryMax, index::ItemVisitor * visitor) const override;
 };
 
 } // geos::intervalrtree
diff --git a/include/geos/index/intervalrtree/IntervalRTreeLeafNode.h b/include/geos/index/intervalrtree/IntervalRTreeLeafNode.h
index 5c8ad2c..683404e 100644
--- a/include/geos/index/intervalrtree/IntervalRTreeLeafNode.h
+++ b/include/geos/index/intervalrtree/IntervalRTreeLeafNode.h
@@ -47,11 +47,11 @@ public:
 		item( item)
 	{ }
 
-	~IntervalRTreeLeafNode()
+	~IntervalRTreeLeafNode() override
 	{
 	}
 
-	void query( double queryMin, double queryMax, index::ItemVisitor * visitor) const;
+	void query( double queryMin, double queryMax, index::ItemVisitor * visitor) const override;
 
 };
 
diff --git a/include/geos/index/quadtree/Node.h b/include/geos/index/quadtree/Node.h
index 76f4fd4..5b01f50 100644
--- a/include/geos/index/quadtree/Node.h
+++ b/include/geos/index/quadtree/Node.h
@@ -75,7 +75,7 @@ private:
 
 protected:
 
-	bool isSearchMatch(const geom::Envelope& searchEnv) const {
+	bool isSearchMatch(const geom::Envelope& searchEnv) const override {
 		return env->intersects(searchEnv);
 	}
 
@@ -101,7 +101,7 @@ public:
 	{
 	}
 
-	virtual ~Node() {}
+	~Node() override {}
 
 	/// Return Envelope associated with this node
 	/// ownership retained by this object
@@ -122,7 +122,7 @@ public:
 
 	void insertNode(std::unique_ptr<Node> node);
 
-	std::string toString() const;
+	std::string toString() const override;
 
 };
 
diff --git a/include/geos/index/quadtree/Quadtree.h b/include/geos/index/quadtree/Quadtree.h
index a1fab07..d237023 100644
--- a/include/geos/index/quadtree/Quadtree.h
+++ b/include/geos/index/quadtree/Quadtree.h
@@ -113,7 +113,7 @@ public:
 		minExtent(1.0)
 	{}
 
-	~Quadtree();
+	~Quadtree() override;
 
 	/// Returns the number of levels in the tree.
 	int depth();
@@ -121,7 +121,7 @@ public:
 	/// Returns the number of items in the tree.
 	int size();
 
-	void insert(const geom::Envelope *itemEnv, void *item);
+	void insert(const geom::Envelope *itemEnv, void *item) override;
 
 	/** \brief
 	 * Queries the tree and returns items which may lie
@@ -140,7 +140,7 @@ public:
 	 * @param ret a vector where items which may intersect the
 	 * 	      search envelope are pushed
 	 */
-	void query(const geom::Envelope *searchEnv, std::vector<void*>& ret);
+	void query(const geom::Envelope *searchEnv, std::vector<void*>& ret) override;
 
 
 	/** \brief
@@ -159,7 +159,7 @@ public:
 	 * @param searchEnv the envelope of the desired query area.
 	 * @param visitor a visitor object which is passed the visited items
 	 */
-	void query(const geom::Envelope *searchEnv, ItemVisitor& visitor)
+	void query(const geom::Envelope *searchEnv, ItemVisitor& visitor) override
 	{
 		/*
 		 * the items that are matched are the items in quads which
@@ -175,7 +175,7 @@ public:
 	 * @param item the item to remove
 	 * @return <code>true</code> if the item was found (and thus removed)
 	 */
-	bool remove(const geom::Envelope* itemEnv, void* item);
+	bool remove(const geom::Envelope* itemEnv, void* item) override;
 
 	/// Return a list of all items in the Quadtree
 	std::vector<void*>* queryAll();
diff --git a/include/geos/index/quadtree/Root.h b/include/geos/index/quadtree/Root.h
index 2ddbcae..98342c9 100644
--- a/include/geos/index/quadtree/Root.h
+++ b/include/geos/index/quadtree/Root.h
@@ -65,7 +65,7 @@ public:
 
 	Root() {}
 
-	virtual ~Root() {}
+	~Root() override {}
 
 	/**
 	 * Insert an item into the quadtree this is the root of.
@@ -74,7 +74,7 @@ public:
 
 protected:
 
-	bool isSearchMatch(const geom::Envelope& /* searchEnv */) const {
+	bool isSearchMatch(const geom::Envelope& /* searchEnv */) const override {
 		return true;
 	}
 
diff --git a/include/geos/index/strtree/AbstractNode.h b/include/geos/index/strtree/AbstractNode.h
index d7f1f7f..4edcf01 100644
--- a/include/geos/index/strtree/AbstractNode.h
+++ b/include/geos/index/strtree/AbstractNode.h
@@ -45,7 +45,7 @@ private:
 	int level;
 public:
 	AbstractNode(int newLevel, int capacity=10);
-	virtual	~AbstractNode();
+		~AbstractNode() override;
 
 	// TODO: change signature to return by ref,
 	// document ownership of the return
@@ -71,7 +71,7 @@ public:
 	 *
 	 * @see AbstractSTRtree::IntersectsOp
 	 */
-	const void* getBounds() const;
+	const void* getBounds() const override;
 
 	int getLevel();
 
diff --git a/include/geos/index/strtree/GeometryItemDistance.h b/include/geos/index/strtree/GeometryItemDistance.h
index e9a97e5..887ea29 100644
--- a/include/geos/index/strtree/GeometryItemDistance.h
+++ b/include/geos/index/strtree/GeometryItemDistance.h
@@ -36,7 +36,7 @@ public:
 	 * @return the distance between the geometries
 	 * @throws ClassCastException if either item is not a Geometry
 	 */
-	double distance(const ItemBoundable* item1, const ItemBoundable* item2);
+	double distance(const ItemBoundable* item1, const ItemBoundable* item2) override;
 };
 }
 }
diff --git a/include/geos/index/strtree/ItemBoundable.h b/include/geos/index/strtree/ItemBoundable.h
index 5cbdf21..1454827 100644
--- a/include/geos/index/strtree/ItemBoundable.h
+++ b/include/geos/index/strtree/ItemBoundable.h
@@ -34,9 +34,9 @@ class GEOS_DLL ItemBoundable: public Boundable
 public:
 
     ItemBoundable(const void* newBounds, void* newItem);
-	virtual ~ItemBoundable();
+	~ItemBoundable() override;
 
-    const void* getBounds() const;
+    const void* getBounds() const override;
 	void* getItem() const;
 
 private:
diff --git a/include/geos/index/strtree/SIRtree.h b/include/geos/index/strtree/SIRtree.h
index dc09da8..54f7895 100644
--- a/include/geos/index/strtree/SIRtree.h
+++ b/include/geos/index/strtree/SIRtree.h
@@ -55,7 +55,7 @@ public:
 	 */
 	SIRtree(std::size_t nodeCapacity);
 
-	virtual ~SIRtree();
+	~SIRtree() override;
 
 	void insert(double x1, double x2, void* item);
 
@@ -81,7 +81,7 @@ protected:
 
 	class SIRIntersectsOp:public AbstractSTRtree::IntersectsOp {
 	public:
-		bool intersects(const void* aBounds, const void* bBounds);
+		bool intersects(const void* aBounds, const void* bBounds) override;
 	};
 
 	/** \brief
@@ -89,13 +89,13 @@ protected:
 	 * M is the node capacity.
 	 */
 	std::unique_ptr<BoundableList> createParentBoundables(
-			BoundableList* childBoundables, int newLevel);
+			BoundableList* childBoundables, int newLevel) override;
 
-	AbstractNode* createNode(int level);
+	AbstractNode* createNode(int level) override;
 
-	IntersectsOp* getIntersectsOp() {return intersectsOp;}
+	IntersectsOp* getIntersectsOp() override {return intersectsOp;}
 
-	std::unique_ptr<BoundableList> sortBoundables(const BoundableList* input);
+	std::unique_ptr<BoundableList> sortBoundables(const BoundableList* input) override;
 
 private:
 
diff --git a/include/geos/index/strtree/STRtree.h b/include/geos/index/strtree/STRtree.h
index 6f49bc8..70be833 100644
--- a/include/geos/index/strtree/STRtree.h
+++ b/include/geos/index/strtree/STRtree.h
@@ -69,7 +69,7 @@ using AbstractSTRtree::query;
 private:
 	class GEOS_DLL STRIntersectsOp: public AbstractSTRtree::IntersectsOp {
 		public:
-			bool intersects(const void* aBounds, const void* bBounds);
+			bool intersects(const void* aBounds, const void* bBounds) override;
 	};
 
 	/**
@@ -79,13 +79,13 @@ private:
 	 * group them into runs of size M (the node capacity). For each run, creates
 	 * a new (parent) node.
 	 */
-	std::unique_ptr<BoundableList> createParentBoundables(BoundableList* childBoundables, int newLevel);
+	std::unique_ptr<BoundableList> createParentBoundables(BoundableList* childBoundables, int newLevel) override;
 
 	std::unique_ptr<BoundableList> createParentBoundablesFromVerticalSlices(std::vector<BoundableList*>* verticalSlices, int newLevel);
 
 	STRIntersectsOp intersectsOp;
 
-	std::unique_ptr<BoundableList> sortBoundables(const BoundableList* input);
+	std::unique_ptr<BoundableList> sortBoundables(const BoundableList* input) override;
 
 	std::unique_ptr<BoundableList> createParentBoundablesFromVerticalSlice(
 			BoundableList* childBoundables,
@@ -103,15 +103,15 @@ private:
 
 protected:
 
-	AbstractNode* createNode(int level);
+	AbstractNode* createNode(int level) override;
 
-	IntersectsOp* getIntersectsOp() {
+	IntersectsOp* getIntersectsOp() override {
 		return &intersectsOp;
 	}
 
 public:
 
-	~STRtree();
+	~STRtree() override;
 
 	/**
 	 * Constructs an STRtree with the given maximum number of child nodes that
@@ -119,7 +119,7 @@ public:
 	 */
 	STRtree(std::size_t nodeCapacity=10);
 
-	void insert(const geom::Envelope *itemEnv,void* item);
+	void insert(const geom::Envelope *itemEnv,void* item) override;
 
 	//static double centreX(const geom::Envelope *e);
 
@@ -131,11 +131,11 @@ public:
 		return STRtree::avg(e->getMinY(), e->getMaxY());
 	}
 
-	void query(const geom::Envelope *searchEnv, std::vector<void*>& matches) {
+	void query(const geom::Envelope *searchEnv, std::vector<void*>& matches) override {
 		AbstractSTRtree::query(searchEnv, matches);
 	}
 
-	void query(const geom::Envelope *searchEnv, ItemVisitor& visitor) {
+	void query(const geom::Envelope *searchEnv, ItemVisitor& visitor) override {
 		return AbstractSTRtree::query(searchEnv, visitor);
 	}
 
@@ -145,7 +145,7 @@ public:
 	std::pair<const void*, const void*> nearestNeighbour(BoundablePair* initBndPair, double maxDistance);
 	std::pair<const void*, const void*> nearestNeighbour(STRtree *tree, ItemDistance *itemDist);
 
-	bool remove(const geom::Envelope *itemEnv, void* item) {
+	bool remove(const geom::Envelope *itemEnv, void* item) override {
 		return AbstractSTRtree::remove(itemEnv, item);
 	}
 
diff --git a/include/geos/io/ParseException.h b/include/geos/io/ParseException.h
index 23c5925..bcef225 100644
--- a/include/geos/io/ParseException.h
+++ b/include/geos/io/ParseException.h
@@ -44,7 +44,7 @@ public:
 
 	ParseException(const std::string& msg, double num);
 
-	~ParseException() throw() {}
+	~ParseException() throw() override {}
 
 private:
 	static std::string stringify(double num);
diff --git a/include/geos/noding/BasicSegmentString.h b/include/geos/noding/BasicSegmentString.h
index 1b0b7ca..e1e08d8 100644
--- a/include/geos/noding/BasicSegmentString.h
+++ b/include/geos/noding/BasicSegmentString.h
@@ -64,26 +64,26 @@ public:
 		pts(newPts)
 	{}
 
-	virtual ~BasicSegmentString()
+	~BasicSegmentString() override
 	{}
 
 	/// see dox in SegmentString.h
-	virtual unsigned int size() const
+	unsigned int size() const override
 	{
 		return pts->size();
 	}
 
 	/// see dox in SegmentString.h
-	virtual const geom::Coordinate& getCoordinate(unsigned int i) const;
+	const geom::Coordinate& getCoordinate(unsigned int i) const override;
 
 	/// see dox in SegmentString.h
-	virtual geom::CoordinateSequence* getCoordinates() const;
+	geom::CoordinateSequence* getCoordinates() const override;
 
 	/// see dox in SegmentString.h
-	virtual bool isClosed() const;
+	bool isClosed() const override;
 
 	/// see dox in SegmentString.h
-	virtual std::ostream& print(std::ostream& os) const;
+	std::ostream& print(std::ostream& os) const override;
 
 	/** \brief
 	 * Gets the octant of the segment starting at vertex index.
diff --git a/include/geos/noding/IntersectionAdder.h b/include/geos/noding/IntersectionAdder.h
index eaacc90..d32b955 100644
--- a/include/geos/noding/IntersectionAdder.h
+++ b/include/geos/noding/IntersectionAdder.h
@@ -158,7 +158,7 @@ public:
 	 */
 	void processIntersections(
 		SegmentString* e0,  int segIndex0,
-		SegmentString* e1,  int segIndex1);
+		SegmentString* e1,  int segIndex1) override;
 
 
 	static bool isAdjacentSegments(int i1, int i2) {
@@ -170,7 +170,7 @@ public:
 	 *
 	 * @return false always
 	 */
-	virtual bool isDone() const {
+	bool isDone() const override {
 		return false;
 	}
 };
diff --git a/include/geos/noding/IntersectionFinderAdder.h b/include/geos/noding/IntersectionFinderAdder.h
index ccf6bdd..4c9184e 100644
--- a/include/geos/noding/IntersectionFinderAdder.h
+++ b/include/geos/noding/IntersectionFinderAdder.h
@@ -80,7 +80,7 @@ public:
 	 */
 	void processIntersections(
 		SegmentString* e0,  int segIndex0,
-		SegmentString* e1,  int segIndex1);
+		SegmentString* e1,  int segIndex1) override;
 
 	std::vector<geom::Coordinate>& getInteriorIntersections() {
 		return interiorIntersections;
@@ -91,7 +91,7 @@ public:
 	 *
 	 * @return false always
 	 */
-	virtual bool isDone() const {
+	bool isDone() const override {
 		return false;
 	}
 
diff --git a/include/geos/noding/IteratedNoder.h b/include/geos/noding/IteratedNoder.h
index d85689b..684d9c9 100644
--- a/include/geos/noding/IteratedNoder.h
+++ b/include/geos/noding/IteratedNoder.h
@@ -80,7 +80,7 @@ public:
 	{
 	}
 
-	virtual ~IteratedNoder() {}
+	~IteratedNoder() override {}
 
 	/**
 	 * Sets the maximum number of noding iterations performed before
@@ -93,7 +93,7 @@ public:
 	 */
 	void setMaximumIterations(int n) { maxIter = n; }
 
-	std::vector<SegmentString*>* getNodedSubstrings() const {
+	std::vector<SegmentString*>* getNodedSubstrings() const override {
 		return nodedSegStrings;
 	}
 
@@ -107,7 +107,7 @@ public:
 	 * @param segStrings a collection of SegmentStrings to be noded
 	 * @throws TopologyException if the iterated noding fails to converge.
 	 */
-	void computeNodes(std::vector<SegmentString*>* inputSegmentStrings); // throw(GEOSException);
+	void computeNodes(std::vector<SegmentString*>* inputSegmentStrings) override; // throw(GEOSException);
 };
 
 } // namespace geos::noding
diff --git a/include/geos/noding/MCIndexNoder.h b/include/geos/noding/MCIndexNoder.h
index f2cd1bf..25ebcfa 100644
--- a/include/geos/noding/MCIndexNoder.h
+++ b/include/geos/noding/MCIndexNoder.h
@@ -84,16 +84,16 @@ public:
 		nOverlaps(0)
 	{}
 
-	~MCIndexNoder();
+	~MCIndexNoder() override;
 
 	/// Return a reference to this instance's std::vector of MonotoneChains
 	std::vector<index::chain::MonotoneChain*>& getMonotoneChains() { return monoChains; }
 
 	index::SpatialIndex& getIndex();
 
-	std::vector<SegmentString*>* getNodedSubstrings() const;
+	std::vector<SegmentString*>* getNodedSubstrings() const override;
 
-	void computeNodes(std::vector<SegmentString*>* inputSegmentStrings);
+	void computeNodes(std::vector<SegmentString*>* inputSegmentStrings) override;
 
 	class SegmentOverlapAction : public index::chain::MonotoneChainOverlapAction {
 	public:
@@ -104,7 +104,7 @@ public:
 		{}
 
 		void overlap(index::chain::MonotoneChain& mc1, std::size_t start1,
-            index::chain::MonotoneChain& mc2, std::size_t start2);
+            index::chain::MonotoneChain& mc2, std::size_t start2) override;
     private:
         SegmentIntersector& si;
 
diff --git a/include/geos/noding/MCIndexSegmentSetMutualIntersector.h b/include/geos/noding/MCIndexSegmentSetMutualIntersector.h
index 6ed321c..24318df 100644
--- a/include/geos/noding/MCIndexSegmentSetMutualIntersector.h
+++ b/include/geos/noding/MCIndexSegmentSetMutualIntersector.h
@@ -57,7 +57,7 @@ public:
 
 	MCIndexSegmentSetMutualIntersector();
 
-	~MCIndexSegmentSetMutualIntersector();
+	~MCIndexSegmentSetMutualIntersector() override;
 
 	/* Returns a reference to a vector of MonotoneChain objects owned
 	 * by this class and destroyed on next call to ::process.
@@ -73,10 +73,10 @@ public:
 		return index;
 	}
 
-	void setBaseSegments(SegmentString::ConstVect* segStrings);
+	void setBaseSegments(SegmentString::ConstVect* segStrings) override;
 
 	// NOTE: re-populates the MonotoneChain vector with newly created chains
-	void process(SegmentString::ConstVect* segStrings);
+	void process(SegmentString::ConstVect* segStrings) override;
 
     class SegmentOverlapAction : public index::chain::MonotoneChainOverlapAction
     {
@@ -93,7 +93,7 @@ public:
           {}
 
           void overlap(index::chain::MonotoneChain& mc1, std::size_t start1,
-              index::chain::MonotoneChain& mc2, std::size_t start2);
+              index::chain::MonotoneChain& mc2, std::size_t start2) override;
     };
 
 private:
diff --git a/include/geos/noding/NodedSegmentString.h b/include/geos/noding/NodedSegmentString.h
index 108b6d2..426fc5c 100644
--- a/include/geos/noding/NodedSegmentString.h
+++ b/include/geos/noding/NodedSegmentString.h
@@ -101,7 +101,7 @@ public:
         , pts(newPts)
     {}
 
-	~NodedSegmentString()
+	~NodedSegmentString() override
 	{
 		delete pts;
 	}
@@ -143,18 +143,18 @@ public:
 
 	const SegmentNodeList& getNodeList() const;
 
-	virtual unsigned int size() const
+	unsigned int size() const override
 	{
 		return static_cast<unsigned int>(pts->size());
 	}
 
-	virtual const geom::Coordinate& getCoordinate(unsigned int i) const;
+	const geom::Coordinate& getCoordinate(unsigned int i) const override;
 
-	virtual geom::CoordinateSequence* getCoordinates() const;
+	geom::CoordinateSequence* getCoordinates() const override;
 
-	virtual bool isClosed() const;
+	bool isClosed() const override;
 
-	virtual std::ostream& print(std::ostream& os) const;
+	std::ostream& print(std::ostream& os) const override;
 
 
 	/** \brief
diff --git a/include/geos/noding/ScaledNoder.h b/include/geos/noding/ScaledNoder.h
index 0b5f26b..f46d1a8 100644
--- a/include/geos/noding/ScaledNoder.h
+++ b/include/geos/noding/ScaledNoder.h
@@ -74,11 +74,11 @@ public:
 		isScaled(nScaleFactor!=1.0)
 	{}
 
-	~ScaledNoder();
+	~ScaledNoder() override;
 
-	std::vector<SegmentString*>* getNodedSubstrings() const;
+	std::vector<SegmentString*>* getNodedSubstrings() const override;
 
-	void computeNodes(std::vector<SegmentString*>* inputSegStr);
+	void computeNodes(std::vector<SegmentString*>* inputSegStr) override;
 
 	//void filter(Coordinate& c);
 
diff --git a/include/geos/noding/SegmentIntersectionDetector.h b/include/geos/noding/SegmentIntersectionDetector.h
index b75d3ec..8aff530 100644
--- a/include/geos/noding/SegmentIntersectionDetector.h
+++ b/include/geos/noding/SegmentIntersectionDetector.h
@@ -69,7 +69,7 @@ public:
 		intSegments( nullptr)
 	{ }
 
-	~SegmentIntersectionDetector()
+	~SegmentIntersectionDetector() override
 	{
 		//delete intPt;
 		delete intSegments;
@@ -138,7 +138,7 @@ public:
 		return intSegments;
 	}
 
-	bool isDone() const
+	bool isDone() const override
 	{
 		// If finding all types, we can stop
 		// when both possible types have been found.
@@ -161,7 +161,7 @@ public:
 	 * (e.g. by an disjoint envelope test).
 	 */
 	void processIntersections(	noding::SegmentString * e0, int segIndex0,
-								noding::SegmentString * e1, int segIndex1 );
+								noding::SegmentString * e1, int segIndex1 ) override;
 
 };
 
diff --git a/include/geos/noding/SimpleNoder.h b/include/geos/noding/SimpleNoder.h
index 86489b9..cb700db 100644
--- a/include/geos/noding/SimpleNoder.h
+++ b/include/geos/noding/SimpleNoder.h
@@ -59,9 +59,9 @@ public:
 		SinglePassNoder(nSegInt)
 	{}
 
-	void computeNodes(std::vector<SegmentString*>* inputSegmentStrings);
+	void computeNodes(std::vector<SegmentString*>* inputSegmentStrings) override;
 
-	std::vector<SegmentString*>* getNodedSubstrings() const {
+	std::vector<SegmentString*>* getNodedSubstrings() const override {
 		return NodedSegmentString::getNodedSubstrings(*nodedSegStrings);
 	}
 };
diff --git a/include/geos/noding/SingleInteriorIntersectionFinder.h b/include/geos/noding/SingleInteriorIntersectionFinder.h
index c9f3360..d471fd5 100644
--- a/include/geos/noding/SingleInteriorIntersectionFinder.h
+++ b/include/geos/noding/SingleInteriorIntersectionFinder.h
@@ -100,9 +100,9 @@ public:
 	 */
 	void processIntersections(
 		SegmentString* e0,  int segIndex0,
-		SegmentString* e1,  int segIndex1);
+		SegmentString* e1,  int segIndex1) override;
 
-	bool isDone() const
+	bool isDone() const override
 	{
 		return !interiorIntersection.isNull();
 	}
diff --git a/include/geos/noding/SinglePassNoder.h b/include/geos/noding/SinglePassNoder.h
index e9106ff..c18781f 100644
--- a/include/geos/noding/SinglePassNoder.h
+++ b/include/geos/noding/SinglePassNoder.h
@@ -58,7 +58,7 @@ public:
 
 	SinglePassNoder(SegmentIntersector* nSegInt=nullptr): segInt(nSegInt) {}
 
-	virtual ~SinglePassNoder() {}
+	~SinglePassNoder() override {}
 
 	/**
 	 * Sets the SegmentIntersector to use with this noder.
@@ -78,7 +78,7 @@ public:
 	 *
 	 * @param segStrings a collection of {@link SegmentString}s to node
 	 */
-	virtual void computeNodes(std::vector<SegmentString*>* segStrings)=0;
+	void computeNodes(std::vector<SegmentString*>* segStrings) override =0;
 
 	/**
 	 * Returns a {@link Collection} of fully noded {@link SegmentStrings}.
@@ -86,7 +86,7 @@ public:
 	 *
 	 * @return a Collection of SegmentStrings
 	 */
-	virtual std::vector<SegmentString*>* getNodedSubstrings() const=0;
+	std::vector<SegmentString*>* getNodedSubstrings() const override =0;
 
 };
 
diff --git a/include/geos/noding/snapround/MCIndexSnapRounder.h b/include/geos/noding/snapround/MCIndexSnapRounder.h
index 8fa377f..ca1e6e5 100644
--- a/include/geos/noding/snapround/MCIndexSnapRounder.h
+++ b/include/geos/noding/snapround/MCIndexSnapRounder.h
@@ -84,11 +84,11 @@ public:
     li.setPrecisionModel(&pm);
   }
 
-	std::vector<SegmentString*>* getNodedSubstrings() const {
+	std::vector<SegmentString*>* getNodedSubstrings() const override {
 	  return NodedSegmentString::getNodedSubstrings(*nodedSegStrings);
   }
 
-	void computeNodes(std::vector<SegmentString*>* segStrings);
+	void computeNodes(std::vector<SegmentString*>* segStrings) override;
 
 	/**
 	 * Computes nodes introduced as a result of
diff --git a/include/geos/noding/snapround/SimpleSnapRounder.h b/include/geos/noding/snapround/SimpleSnapRounder.h
index 8d24cfb..095b478 100644
--- a/include/geos/noding/snapround/SimpleSnapRounder.h
+++ b/include/geos/noding/snapround/SimpleSnapRounder.h
@@ -76,9 +76,9 @@ public:
 
 	SimpleSnapRounder(const geom::PrecisionModel& newPm);
 
-	std::vector<SegmentString*>* getNodedSubstrings() const;
+	std::vector<SegmentString*>* getNodedSubstrings() const override;
 
-	void computeNodes(std::vector<SegmentString*>* inputSegmentStrings);
+	void computeNodes(std::vector<SegmentString*>* inputSegmentStrings) override;
 
 	void add(const SegmentString* segStr);
 
diff --git a/include/geos/operation/distance/ConnectedElementLocationFilter.h b/include/geos/operation/distance/ConnectedElementLocationFilter.h
index 84658ac..046465e 100644
--- a/include/geos/operation/distance/ConnectedElementLocationFilter.h
+++ b/include/geos/operation/distance/ConnectedElementLocationFilter.h
@@ -68,8 +68,8 @@ public:
 		locations(newLocations)
 	{}
 
-	void filter_ro(const geom::Geometry *geom);
-	void filter_rw(geom::Geometry *geom);
+	void filter_ro(const geom::Geometry *geom) override;
+	void filter_rw(geom::Geometry *geom) override;
 };
 
 
diff --git a/include/geos/operation/distance/ConnectedElementPointFilter.h b/include/geos/operation/distance/ConnectedElementPointFilter.h
index d0c2b77..bf2de98 100644
--- a/include/geos/operation/distance/ConnectedElementPointFilter.h
+++ b/include/geos/operation/distance/ConnectedElementPointFilter.h
@@ -62,7 +62,7 @@ public:
 		pts(newPts)
 	{}
 
-	void filter_ro(const geom::Geometry *geom);
+	void filter_ro(const geom::Geometry *geom) override;
 
 	//void filter_rw(geom::Geometry * /*geom*/) {};
 };
diff --git a/include/geos/operation/linemerge/LineMergeGraph.h b/include/geos/operation/linemerge/LineMergeGraph.h
index a6a57fc..6c932d1 100644
--- a/include/geos/operation/linemerge/LineMergeGraph.h
+++ b/include/geos/operation/linemerge/LineMergeGraph.h
@@ -80,7 +80,7 @@ public:
 	 */
 	void addEdge(const geom::LineString *lineString);
 
-	~LineMergeGraph();
+	~LineMergeGraph() override;
 };
 } // namespace geos::operation::linemerge
 } // namespace geos::operation
diff --git a/include/geos/operation/overlay/ElevationMatrix.h b/include/geos/operation/overlay/ElevationMatrix.h
index 0c2c2d6..9e3e52c 100644
--- a/include/geos/operation/overlay/ElevationMatrix.h
+++ b/include/geos/operation/overlay/ElevationMatrix.h
@@ -62,9 +62,9 @@ class GEOS_DLL ElevationMatrixFilter: public geom::CoordinateFilter
 {
 public:
 	ElevationMatrixFilter(ElevationMatrix &em);
-	~ElevationMatrixFilter();
-	void filter_rw(geom::Coordinate *c) const;
-	void filter_ro(const geom::Coordinate *c);
+	~ElevationMatrixFilter() override;
+	void filter_rw(geom::Coordinate *c) const override;
+	void filter_ro(const geom::Coordinate *c) override;
 private:
 	ElevationMatrix &em;
 	double avgElevation;
diff --git a/include/geos/operation/overlay/MaximalEdgeRing.h b/include/geos/operation/overlay/MaximalEdgeRing.h
index 2c340d7..bee9505 100644
--- a/include/geos/operation/overlay/MaximalEdgeRing.h
+++ b/include/geos/operation/overlay/MaximalEdgeRing.h
@@ -71,11 +71,11 @@ public:
 		const geom::GeometryFactory *geometryFactory);
 			// throw(const TopologyException &)
 
-	virtual ~MaximalEdgeRing();
+	~MaximalEdgeRing() override;
 
-	geomgraph::DirectedEdge* getNext(geomgraph::DirectedEdge *de);
+	geomgraph::DirectedEdge* getNext(geomgraph::DirectedEdge *de) override;
 
-	void setEdgeRing(geomgraph::DirectedEdge* de, geomgraph::EdgeRing* er);
+	void setEdgeRing(geomgraph::DirectedEdge* de, geomgraph::EdgeRing* er) override;
 
 	/// \brief
 	/// This function returns a newly allocated vector of
diff --git a/include/geos/operation/overlay/MinimalEdgeRing.h b/include/geos/operation/overlay/MinimalEdgeRing.h
index 62ad3d9..6571241 100644
--- a/include/geos/operation/overlay/MinimalEdgeRing.h
+++ b/include/geos/operation/overlay/MinimalEdgeRing.h
@@ -61,12 +61,12 @@ public:
 	MinimalEdgeRing(geomgraph::DirectedEdge *start,
 		const geom::GeometryFactory *geometryFactory);
 
-	virtual ~MinimalEdgeRing();
+	~MinimalEdgeRing() override;
 
-	geomgraph::DirectedEdge* getNext(geomgraph::DirectedEdge *de);
+	geomgraph::DirectedEdge* getNext(geomgraph::DirectedEdge *de) override;
 
 	void setEdgeRing(geomgraph::DirectedEdge *de,
-			geomgraph::EdgeRing *er);
+			geomgraph::EdgeRing *er) override;
 };
 
 
diff --git a/include/geos/operation/overlay/OverlayNodeFactory.h b/include/geos/operation/overlay/OverlayNodeFactory.h
index 6d66a4d..bd345b8 100644
--- a/include/geos/operation/overlay/OverlayNodeFactory.h
+++ b/include/geos/operation/overlay/OverlayNodeFactory.h
@@ -46,7 +46,7 @@ namespace overlay { // geos::operation::overlay
 class GEOS_DLL OverlayNodeFactory: public geomgraph::NodeFactory {
 public:
 	OverlayNodeFactory():geomgraph::NodeFactory() {}
-	geomgraph::Node* createNode(const geom::Coordinate &coord) const;
+	geomgraph::Node* createNode(const geom::Coordinate &coord) const override;
 	static const geomgraph::NodeFactory &instance();
 };
 
diff --git a/include/geos/operation/overlay/OverlayOp.h b/include/geos/operation/overlay/OverlayOp.h
index e504541..ac52b2b 100644
--- a/include/geos/operation/overlay/OverlayOp.h
+++ b/include/geos/operation/overlay/OverlayOp.h
@@ -126,7 +126,7 @@ public:
 	///
 	OverlayOp(const geom::Geometry *g0, const geom::Geometry *g1);
 
-	virtual ~OverlayOp(); // FIXME: virtual ?
+	~OverlayOp() override; // FIXME: virtual ?
 
 	/**
 	 * Gets the result of the overlay for a given overlay operation.
diff --git a/include/geos/operation/polygonize/PolygonizeGraph.h b/include/geos/operation/polygonize/PolygonizeGraph.h
index 3fe94c1..21248a1 100644
--- a/include/geos/operation/polygonize/PolygonizeGraph.h
+++ b/include/geos/operation/polygonize/PolygonizeGraph.h
@@ -86,7 +86,7 @@ public:
 	 * \brief
 	 * Destroy a polygonization graph.
 	 */
-	~PolygonizeGraph();
+	~PolygonizeGraph() override;
 
 	/**
 	 * \brief
diff --git a/include/geos/operation/polygonize/Polygonizer.h b/include/geos/operation/polygonize/Polygonizer.h
index 203b3bf..6064db1 100644
--- a/include/geos/operation/polygonize/Polygonizer.h
+++ b/include/geos/operation/polygonize/Polygonizer.h
@@ -80,7 +80,7 @@ private:
 		Polygonizer *pol;
 		LineStringAdder(Polygonizer *p);
 		//void filter_rw(geom::Geometry *g);
-		void filter_ro(const geom::Geometry * g);
+		void filter_ro(const geom::Geometry * g) override;
 	};
 
 	// default factory
diff --git a/include/geos/operation/relate/EdgeEndBundle.h b/include/geos/operation/relate/EdgeEndBundle.h
index 4881497..eaba734 100644
--- a/include/geos/operation/relate/EdgeEndBundle.h
+++ b/include/geos/operation/relate/EdgeEndBundle.h
@@ -48,11 +48,11 @@ class GEOS_DLL EdgeEndBundle: public geomgraph::EdgeEnd
 {
 public:
 	EdgeEndBundle(geomgraph::EdgeEnd *e);
-	virtual ~EdgeEndBundle();
+	~EdgeEndBundle() override;
 	std::vector<geomgraph::EdgeEnd*>* getEdgeEnds();
 	void insert(geomgraph::EdgeEnd *e);
 
-	void computeLabel(const algorithm::BoundaryNodeRule& bnr);
+	void computeLabel(const algorithm::BoundaryNodeRule& bnr) override;
 
   /**
    * \brief
diff --git a/include/geos/operation/relate/EdgeEndBundleStar.h b/include/geos/operation/relate/EdgeEndBundleStar.h
index 75b966b..9118b24 100644
--- a/include/geos/operation/relate/EdgeEndBundleStar.h
+++ b/include/geos/operation/relate/EdgeEndBundleStar.h
@@ -51,8 +51,8 @@ public:
 	/// Creates a new empty EdgeEndBundleStar
 	EdgeEndBundleStar() {}
 
-	virtual ~EdgeEndBundleStar();
-	void insert(geomgraph::EdgeEnd *e);
+	~EdgeEndBundleStar() override;
+	void insert(geomgraph::EdgeEnd *e) override;
 
 	/**
 	 * Update the IM with the contribution for the EdgeStubs around the node.
diff --git a/include/geos/operation/relate/RelateNode.h b/include/geos/operation/relate/RelateNode.h
index d1ae36d..7d9c43f 100644
--- a/include/geos/operation/relate/RelateNode.h
+++ b/include/geos/operation/relate/RelateNode.h
@@ -49,7 +49,7 @@ public:
 
 	RelateNode(const geom::Coordinate& coord, geomgraph::EdgeEndStar *edges);
 
-	virtual ~RelateNode();
+	~RelateNode() override;
 
 	/**
 	 * Update the IM with the contribution for the EdgeEnds incident on this node.
@@ -58,7 +58,7 @@ public:
 
 protected:
 
-	void computeIM(geom::IntersectionMatrix& im);
+	void computeIM(geom::IntersectionMatrix& im) override;
 };
 
 
diff --git a/include/geos/operation/relate/RelateNodeFactory.h b/include/geos/operation/relate/RelateNodeFactory.h
index 3815a2b..60e38e2 100644
--- a/include/geos/operation/relate/RelateNodeFactory.h
+++ b/include/geos/operation/relate/RelateNodeFactory.h
@@ -43,7 +43,7 @@ namespace relate { // geos::operation::relate
  */
 class GEOS_DLL RelateNodeFactory: public geomgraph::NodeFactory {
 public:
-	geomgraph::Node* createNode(const geom::Coordinate &coord) const;
+	geomgraph::Node* createNode(const geom::Coordinate &coord) const override;
 	static const geomgraph::NodeFactory &instance();
 private:
 	RelateNodeFactory() {}
diff --git a/include/geos/operation/relate/RelateOp.h b/include/geos/operation/relate/RelateOp.h
index 5ba5556..b3b99f6 100644
--- a/include/geos/operation/relate/RelateOp.h
+++ b/include/geos/operation/relate/RelateOp.h
@@ -112,7 +112,7 @@ public:
 	         const geom::Geometry *g1,
 	         const algorithm::BoundaryNodeRule& boundaryNodeRule);
 
-	virtual ~RelateOp();
+	~RelateOp() override;
 
 	/** \brief
 	 * Gets the IntersectionMatrix for the spatial relationship
diff --git a/include/geos/operation/valid/SweeplineNestedRingTester.h b/include/geos/operation/valid/SweeplineNestedRingTester.h
index d79fe13..86e21f6 100644
--- a/include/geos/operation/valid/SweeplineNestedRingTester.h
+++ b/include/geos/operation/valid/SweeplineNestedRingTester.h
@@ -102,7 +102,7 @@ public:
 		bool isNonNested;
 		OverlapAction(SweeplineNestedRingTester *p);
 		void overlap(index::sweepline::SweepLineInterval *s0,
-				index::sweepline::SweepLineInterval *s1);
+				index::sweepline::SweepLineInterval *s1) override;
 	private:
 		SweeplineNestedRingTester *parent;
 	};
diff --git a/include/geos/planargraph/Node.h b/include/geos/planargraph/Node.h
index 903b0da..5a96ac9 100644
--- a/include/geos/planargraph/Node.h
+++ b/include/geos/planargraph/Node.h
@@ -71,7 +71,7 @@ public:
 		pt(newPt)
 		{ deStar=new DirectedEdgeStar(); }
 
-	virtual ~Node() {
+	~Node() override {
 		delete deStar;
 	}
 
diff --git a/include/geos/precision/PrecisionReducerCoordinateOperation.h b/include/geos/precision/PrecisionReducerCoordinateOperation.h
index e0b05db..90cb5ee 100644
--- a/include/geos/precision/PrecisionReducerCoordinateOperation.h
+++ b/include/geos/precision/PrecisionReducerCoordinateOperation.h
@@ -59,7 +59,7 @@ public:
   //
   /// virtual function
 	geom::CoordinateSequence* edit(const geom::CoordinateSequence *coordinates,
-	                         const geom::Geometry *geom);
+	                         const geom::Geometry *geom) override;
 };
 
 } // namespace geos.precision
diff --git a/include/geos/triangulate/quadedge/LastFoundQuadEdgeLocator.h b/include/geos/triangulate/quadedge/LastFoundQuadEdgeLocator.h
index f280621..e7c9e65 100644
--- a/include/geos/triangulate/quadedge/LastFoundQuadEdgeLocator.h
+++ b/include/geos/triangulate/quadedge/LastFoundQuadEdgeLocator.h
@@ -57,7 +57,7 @@ public:
 	 * The search starts from the last located edge amd proceeds on the general direction of v.
 	 * @return The caller _does not_ take ownership of the returned object.
 	 */
-	virtual QuadEdge* locate(const Vertex &v);
+	QuadEdge* locate(const Vertex &v) override;
 };
 
 } //namespace geos.triangulate.quadedge
diff --git a/include/geos/util/AssertionFailedException.h b/include/geos/util/AssertionFailedException.h
index b336615..7142c69 100644
--- a/include/geos/util/AssertionFailedException.h
+++ b/include/geos/util/AssertionFailedException.h
@@ -41,7 +41,7 @@ public:
 		GEOSException("AssertionFailedException", msg)
 	{}
 
-	~AssertionFailedException() throw() {}
+	~AssertionFailedException() throw() override {}
 };
 
 } // namespace geos.util
diff --git a/include/geos/util/GEOSException.h b/include/geos/util/GEOSException.h
index 632b5c1..26fd05d 100644
--- a/include/geos/util/GEOSException.h
+++ b/include/geos/util/GEOSException.h
@@ -57,10 +57,10 @@ public:
 		_msg(name+": "+msg)
 	{}
 
-	virtual ~GEOSException() throw()
+	~GEOSException() throw() override
 	{}
 
-	const char* what() const throw()
+	const char* what() const throw() override
 	{
 		return _msg.c_str();
 	}
diff --git a/include/geos/util/IllegalArgumentException.h b/include/geos/util/IllegalArgumentException.h
index 8e3b03c..f58a7d2 100644
--- a/include/geos/util/IllegalArgumentException.h
+++ b/include/geos/util/IllegalArgumentException.h
@@ -43,7 +43,7 @@ public:
 		GEOSException("IllegalArgumentException", msg)
 	{}
 
-	~IllegalArgumentException() throw() {}
+	~IllegalArgumentException() throw() override {}
 };
 
 } // namespace geos::util
diff --git a/include/geos/util/IllegalStateException.h b/include/geos/util/IllegalStateException.h
index 6eae12d..d23281f 100644
--- a/include/geos/util/IllegalStateException.h
+++ b/include/geos/util/IllegalStateException.h
@@ -36,7 +36,7 @@ public:
 		GEOSException("IllegalStateException", msg)
 	{}
 
-	~IllegalStateException() throw() {}
+	~IllegalStateException() throw() override {}
 };
 
 } // namespace geos::util
diff --git a/include/geos/util/TopologyException.h b/include/geos/util/TopologyException.h
index 332e6eb..f87fd54 100644
--- a/include/geos/util/TopologyException.h
+++ b/include/geos/util/TopologyException.h
@@ -50,7 +50,7 @@ public:
 		pt(newPt)
 	{}
 
-	~TopologyException() throw() {}
+	~TopologyException() throw() override {}
 	geom::Coordinate& getCoordinate() { return pt; }
 private:
 	geom::Coordinate pt;
diff --git a/include/geos/util/UniqueCoordinateArrayFilter.h b/include/geos/util/UniqueCoordinateArrayFilter.h
index da42e38..4e52bec 100644
--- a/include/geos/util/UniqueCoordinateArrayFilter.h
+++ b/include/geos/util/UniqueCoordinateArrayFilter.h
@@ -57,14 +57,14 @@ public:
 	 * delete a derived-class object via a base-class pointer.
 	 * http://www.parashift.com/c++-faq-lite/virtual-functions.html#faq-20.7
 	 */
-	virtual ~UniqueCoordinateArrayFilter() {}
+	~UniqueCoordinateArrayFilter() override {}
 
 	/**
 	 * Performs a filtering operation with or on coord in "read-only" mode.
 	 * @param coord The "read-only" Coordinate to which
 	 * 				the filter is applied.
 	 */
-	virtual void filter_ro(const geom::Coordinate *coord)
+	void filter_ro(const geom::Coordinate *coord) override
 	{
 		if ( uniqPts.insert(coord).second )
 		{
diff --git a/include/geos/util/UnsupportedOperationException.h b/include/geos/util/UnsupportedOperationException.h
index 69aa718..95b2715 100644
--- a/include/geos/util/UnsupportedOperationException.h
+++ b/include/geos/util/UnsupportedOperationException.h
@@ -45,7 +45,7 @@ public:
 		GEOSException("UnsupportedOperationException", msg)
 	{}
 
-	~UnsupportedOperationException() throw() {}
+	~UnsupportedOperationException() throw() override {}
 };
 
 } // namespace geos::util
diff --git a/src/algorithm/BoundaryNodeRule.cpp b/src/algorithm/BoundaryNodeRule.cpp
index 8c4ce69..1603696 100644
--- a/src/algorithm/BoundaryNodeRule.cpp
+++ b/src/algorithm/BoundaryNodeRule.cpp
@@ -44,7 +44,7 @@ namespace {
 class Mod2BoundaryNodeRule : public BoundaryNodeRule
 {
 public:
-	bool isInBoundary(int boundaryCount) const
+	bool isInBoundary(int boundaryCount) const override
 	{
 		// the "Mod-2 Rule"
 		return boundaryCount % 2 == 1;
@@ -81,7 +81,7 @@ public:
  */
 class EndPointBoundaryNodeRule : public BoundaryNodeRule
 {
-	bool isInBoundary(int boundaryCount) const
+	bool isInBoundary(int boundaryCount) const override
 	{
 		return boundaryCount > 0;
 	}
@@ -99,7 +99,7 @@ class EndPointBoundaryNodeRule : public BoundaryNodeRule
  */
 class MultiValentEndPointBoundaryNodeRule : public BoundaryNodeRule
 {
-	bool isInBoundary(int boundaryCount) const
+	bool isInBoundary(int boundaryCount) const override
 	{
 		return boundaryCount > 1;
 	}
@@ -116,7 +116,7 @@ class MultiValentEndPointBoundaryNodeRule : public BoundaryNodeRule
  */
 class MonoValentEndPointBoundaryNodeRule : public BoundaryNodeRule
 {
-	bool isInBoundary(int boundaryCount) const
+	bool isInBoundary(int boundaryCount) const override
 	{
 		return boundaryCount == 1;
 	}
diff --git a/src/geom/GeometryFactory.cpp b/src/geom/GeometryFactory.cpp
index 4c2b2a0..f60025c 100644
--- a/src/geom/GeometryFactory.cpp
+++ b/src/geom/GeometryFactory.cpp
@@ -68,7 +68,7 @@ public:
       : _gsf(gsf)
   {}
   CoordinateSequence* edit( const CoordinateSequence *coordSeq,
-                            const Geometry * )
+                            const Geometry * ) override
   {
     return _gsf->create(*coordSeq);
   }
diff --git a/src/index/strtree/SIRtree.cpp b/src/index/strtree/SIRtree.cpp
index 3c5505b..b5a2cbd 100644
--- a/src/index/strtree/SIRtree.cpp
+++ b/src/index/strtree/SIRtree.cpp
@@ -91,14 +91,14 @@ public:
 		AbstractNode(level, capacity)
 	{}
 
-	~SIRAbstractNode()
+	~SIRAbstractNode() override
 	{
 		delete (Interval *)bounds;
 	}
 
 protected:
 
-	void* computeBounds() const
+	void* computeBounds() const override
 	{
 		Interval* bounds=nullptr;
 		const BoundableList& b = *getChildBoundables();
diff --git a/src/index/strtree/STRtree.cpp b/src/index/strtree/STRtree.cpp
index 4670811..b9f5e68 100644
--- a/src/index/strtree/STRtree.cpp
+++ b/src/index/strtree/STRtree.cpp
@@ -282,14 +282,14 @@ public:
 		AbstractNode(level, capacity)
 	{}
 
-	~STRAbstractNode()
+	~STRAbstractNode() override
 	{
 		delete (Envelope *)bounds;
 	}
 
 protected:
 
-	void* computeBounds() const
+	void* computeBounds() const override
 	{
 		Envelope* bounds=nullptr;
 		const BoundableList& b = *getChildBoundables();
diff --git a/src/noding/GeometryNoder.cpp b/src/noding/GeometryNoder.cpp
index bf02d7b..615fe12 100644
--- a/src/noding/GeometryNoder.cpp
+++ b/src/noding/GeometryNoder.cpp
@@ -53,7 +53,7 @@ public:
     : _to(to)
   {}
 
-  void filter_ro(const geom::Geometry * g) {
+  void filter_ro(const geom::Geometry * g) override {
     const geom::LineString *ls = dynamic_cast<const geom::LineString *>(g);
     if ( ls ) {
       geom::CoordinateSequence* coord = ls->getCoordinates();
diff --git a/src/noding/ScaledNoder.cpp b/src/noding/ScaledNoder.cpp
index 517d595..e31a820 100644
--- a/src/noding/ScaledNoder.cpp
+++ b/src/noding/ScaledNoder.cpp
@@ -86,7 +86,7 @@ public:
 
 	//void filter_ro(const geom::Coordinate* c) { assert(0); }
 
-	void filter_rw(geom::Coordinate* c) const {
+	void filter_rw(geom::Coordinate* c) const override {
 		c->x = util::round( ( c->x - sn.offsetX ) * sn.scaleFactor );
 		c->y = util::round( ( c->y - sn.offsetY ) * sn.scaleFactor );
 	}
@@ -109,13 +109,13 @@ public:
 #endif
 	}
 
-	void filter_ro(const geom::Coordinate* c)
+	void filter_ro(const geom::Coordinate* c) override
     {
         ::geos::ignore_unused_variable_warning(c);
         assert(0);
     }
 
-	void filter_rw(geom::Coordinate* c) const {
+	void filter_rw(geom::Coordinate* c) const override {
 		c->x = c->x / sn.scaleFactor + sn.offsetX;
 		c->y = c->y / sn.scaleFactor + sn.offsetY;
 	}
diff --git a/src/noding/snapround/MCIndexPointSnapper.cpp b/src/noding/snapround/MCIndexPointSnapper.cpp
index 56a6859..281bb70 100644
--- a/src/noding/snapround/MCIndexPointSnapper.cpp
+++ b/src/noding/snapround/MCIndexPointSnapper.cpp
@@ -53,7 +53,7 @@ public:
 
 	bool isNodeAdded() const { return isNodeAddedVar; }
 
-	void select(chain::MonotoneChain& mc, unsigned int startIndex)
+	void select(chain::MonotoneChain& mc, unsigned int startIndex) override
 	{
 		// This is casting away 'constness'!
 		NodedSegmentString& ss = *(static_cast<NodedSegmentString*>(mc.getContext()));
@@ -68,7 +68,7 @@ public:
 		isNodeAddedVar = hotPixel.addSnappedNode(ss, startIndex);
 	}
 
-	void select(const LineSegment& ls)
+	void select(const LineSegment& ls) override
 	{
 		::geos::ignore_unused_variable_warning(ls);
 	}
@@ -93,9 +93,9 @@ public:
 		action(nAction)
 	{}
 
-	virtual ~MCIndexPointSnapperVisitor() {}
+	~MCIndexPointSnapperVisitor() override {}
 
-	void visitItem(void* item) {
+	void visitItem(void* item) override {
 		chain::MonotoneChain& testChain =
 			*(static_cast<chain::MonotoneChain*>(item));
 		testChain.select(pixelEnv, action);
diff --git a/src/operation/distance/FacetSequenceTreeBuilder.cpp b/src/operation/distance/FacetSequenceTreeBuilder.cpp
index e1273af..d7456c2 100644
--- a/src/operation/distance/FacetSequenceTreeBuilder.cpp
+++ b/src/operation/distance/FacetSequenceTreeBuilder.cpp
@@ -49,7 +49,7 @@ std::vector<FacetSequence*> * FacetSequenceTreeBuilder::computeFacetSequences(co
     public :
         FacetSequenceAdder(std::vector<FacetSequence*> * p_sections) :
             m_sections(p_sections) {}
-        void filter_ro(const Geometry* geom) {
+        void filter_ro(const Geometry* geom) override {
             if (const LineString* ls = dynamic_cast<const LineString*>(geom)) {
                 const CoordinateSequence* seq = ls->getCoordinatesRO();
                 addFacetSequences(seq, *m_sections);
diff --git a/src/operation/distance/IndexedFacetDistance.cpp b/src/operation/distance/IndexedFacetDistance.cpp
index a8f4d55..31f00d0 100644
--- a/src/operation/distance/IndexedFacetDistance.cpp
+++ b/src/operation/distance/IndexedFacetDistance.cpp
@@ -27,7 +27,7 @@ namespace geos {
     namespace operation {
         namespace distance {
             struct Deleter : public index::ItemVisitor {
-                void visitItem(void * item) {
+                void visitItem(void * item) override {
                     delete static_cast<FacetSequence*>(item);
                 }
             } deleter;
@@ -39,7 +39,7 @@ namespace geos {
 
             double IndexedFacetDistance::getDistance(const Geometry * g) const {
                 struct : public ItemDistance {
-                    double distance(const ItemBoundable* item1, const ItemBoundable* item2) {
+                    double distance(const ItemBoundable* item1, const ItemBoundable* item2) override {
                         return static_cast<const FacetSequence*>(item1->getItem())->distance(*static_cast<const FacetSequence*>(item2->getItem()));
                     }
                 } itemDistance;
diff --git a/src/operation/overlay/OverlayOp.cpp b/src/operation/overlay/OverlayOp.cpp
index e2e9b2f..77f8773 100644
--- a/src/operation/overlay/OverlayOp.cpp
+++ b/src/operation/overlay/OverlayOp.cpp
@@ -962,7 +962,7 @@ struct PointCoveredByAny: public geom::CoordinateFilter
 		: geoms(nGeoms)
 	{}
 
-	void filter_ro(const Coordinate* coord)
+	void filter_ro(const Coordinate* coord) override
 	{
 		for (size_t i=0, n=geoms.size(); i<n; ++i)
 		{
diff --git a/src/operation/overlay/snap/GeometrySnapper.cpp b/src/operation/overlay/snap/GeometrySnapper.cpp
index f7d03f4..53b3ed5 100644
--- a/src/operation/overlay/snap/GeometrySnapper.cpp
+++ b/src/operation/overlay/snap/GeometrySnapper.cpp
@@ -78,7 +78,7 @@ public:
 
 	CoordinateSequence::Ptr transformCoordinates(
 			const CoordinateSequence* coords,
-			const Geometry* parent)
+			const Geometry* parent) override
 	{
         ::geos::ignore_unused_variable_warning(parent);
 		return snapLine(coords);
diff --git a/src/operation/predicate/RectangleIntersects.cpp b/src/operation/predicate/RectangleIntersects.cpp
index fd66c5e..0a159f5 100644
--- a/src/operation/predicate/RectangleIntersects.cpp
+++ b/src/operation/predicate/RectangleIntersects.cpp
@@ -63,7 +63,7 @@ protected:
 	 * @return <code>true</code> if an intersection must occur
 	 * <code>false</code> if no conclusion can be made
 	 */
-	void visit(const geom::Geometry &element)
+	void visit(const geom::Geometry &element) override
 	{
 		const geom::Envelope &elementEnv = *(element.getEnvelopeInternal());
 
@@ -101,7 +101,7 @@ protected:
 		}
 	}
 
-	bool isDone() { return intersectsVar==true; }
+	bool isDone() override { return intersectsVar==true; }
 
 public:
 
@@ -137,7 +137,7 @@ private:
 
 protected:
 
-	void visit(const geom::Geometry &geom)
+	void visit(const geom::Geometry &geom) override
 	{
 		using geos::algorithm::locate::SimplePointInAreaLocator;
 
@@ -174,7 +174,7 @@ protected:
 		}
 	}
 
-	bool isDone() { return containsPointVar; }
+	bool isDone() override { return containsPointVar; }
 
 public:
 
@@ -225,7 +225,7 @@ private:
 
 protected:
 
-	void visit(const geom::Geometry &geom)
+	void visit(const geom::Geometry &geom) override
 	{
 		const geom::Envelope &elementEnv = *(geom.getEnvelopeInternal());
 
@@ -235,7 +235,7 @@ protected:
 		computeSegmentIntersection(geom);
 	}
 
-	bool isDone() { return intersectsVar; }
+	bool isDone() override { return intersectsVar; }
 
 public:
 
diff --git a/src/precision/CommonBitsRemover.cpp b/src/precision/CommonBitsRemover.cpp
index 9e19bd9..d72b6af 100644
--- a/src/precision/CommonBitsRemover.cpp
+++ b/src/precision/CommonBitsRemover.cpp
@@ -49,13 +49,13 @@ public:
 		trans(newTrans)
 	{}
 
-	void filter_ro(const geom::Coordinate *coord)  //Not used
+	void filter_ro(const geom::Coordinate *coord) override  //Not used
     {
         ::geos::ignore_unused_variable_warning(coord);
         assert(0);
     }
 
-	void filter_rw(geom::Coordinate *coord) const
+	void filter_rw(geom::Coordinate *coord) const override
 	{
 		coord->x += trans.x;
 		coord->y += trans.y;
@@ -69,14 +69,14 @@ private:
 	CommonBits commonBitsY;
 public:
 
-	void filter_rw(geom::Coordinate *coord) const
+	void filter_rw(geom::Coordinate *coord) const override
 	{
         // CommonCoordinateFilter is a read-only filter
         ::geos::ignore_unused_variable_warning(coord);
 		assert(0);
 	}
 
-	void filter_ro(const geom::Coordinate *coord)
+	void filter_ro(const geom::Coordinate *coord) override
 	{
 		commonBitsX.add(coord->x);
 		commonBitsY.add(coord->y);
diff --git a/src/precision/MinimumClearance.cpp b/src/precision/MinimumClearance.cpp
index ed020f8..34e6b6a 100644
--- a/src/precision/MinimumClearance.cpp
+++ b/src/precision/MinimumClearance.cpp
@@ -72,7 +72,7 @@ void MinimumClearance::compute() {
             return &minPts;
         }
 
-        double distance(const ItemBoundable* b1, const ItemBoundable* b2) {
+        double distance(const ItemBoundable* b1, const ItemBoundable* b2) override {
             FacetSequence* fs1 = static_cast<FacetSequence*>(b1->getItem());
             FacetSequence* fs2 = static_cast<FacetSequence*>(b2->getItem());
 
@@ -142,7 +142,7 @@ void MinimumClearance::compute() {
     };
 
     struct ItemDeleter : public index::ItemVisitor {
-        void visitItem(void * item) {
+        void visitItem(void * item) override {
             delete static_cast<FacetSequence*>(item);
         }
     };
diff --git a/src/precision/SimpleGeometryPrecisionReducer.cpp b/src/precision/SimpleGeometryPrecisionReducer.cpp
index 29d1297..dc2ce56 100644
--- a/src/precision/SimpleGeometryPrecisionReducer.cpp
+++ b/src/precision/SimpleGeometryPrecisionReducer.cpp
@@ -55,7 +55,7 @@ public:
 
 	/// Ownership of returned CoordinateSequence to caller
 	CoordinateSequence* edit(const CoordinateSequence *coordinates,
-	                         const Geometry *geom);
+	                         const Geometry *geom) override;
 };
 
 PrecisionReducerCoordinateOperation::PrecisionReducerCoordinateOperation(
diff --git a/src/simplify/DouglasPeuckerSimplifier.cpp b/src/simplify/DouglasPeuckerSimplifier.cpp
index 239b71b..48bd6dd 100644
--- a/src/simplify/DouglasPeuckerSimplifier.cpp
+++ b/src/simplify/DouglasPeuckerSimplifier.cpp
@@ -53,15 +53,15 @@ protected:
 
 	CoordinateSequence::Ptr transformCoordinates(
 			const CoordinateSequence* coords,
-			const Geometry* parent);
+			const Geometry* parent) override;
 
 	Geometry::Ptr transformPolygon(
 			const Polygon* geom,
-			const Geometry* parent);
+			const Geometry* parent) override;
 
 	Geometry::Ptr transformMultiPolygon(
 			const MultiPolygon* geom,
-			const Geometry* parent);
+			const Geometry* parent) override;
 
 private:
 
diff --git a/src/simplify/LineSegmentIndex.cpp b/src/simplify/LineSegmentIndex.cpp
index 9173d49..efffb6f 100644
--- a/src/simplify/LineSegmentIndex.cpp
+++ b/src/simplify/LineSegmentIndex.cpp
@@ -65,7 +65,7 @@ public:
 		items(new vector<LineSegment*>())
 	{}
 
-	virtual ~LineSegmentVisitor()
+	~LineSegmentVisitor() override
 	{
 		// nothing to do, LineSegments are not owned by us
 	}
@@ -86,7 +86,7 @@ public:
 		return *this;
 	}
 
-	void visitItem(void* item)
+	void visitItem(void* item) override
 	{
 		LineSegment* seg = (LineSegment*) item;
 		if ( Envelope::intersects(seg->p0, seg->p1,
diff --git a/src/simplify/TopologyPreservingSimplifier.cpp b/src/simplify/TopologyPreservingSimplifier.cpp
index 689c5e5..4e44706 100644
--- a/src/simplify/TopologyPreservingSimplifier.cpp
+++ b/src/simplify/TopologyPreservingSimplifier.cpp
@@ -69,7 +69,7 @@ protected:
 
 	CoordinateSequence::Ptr transformCoordinates(
 			const CoordinateSequence* coords,
-			const Geometry* parent);
+			const Geometry* parent) override;
 
 private:
 
@@ -203,7 +203,7 @@ public:
 	 *
 	 * geom a geometry of any type
 	 */
-	void filter_ro(const Geometry* geom);
+	void filter_ro(const Geometry* geom) override;
 
 
 	/**
diff --git a/src/triangulate/quadedge/QuadEdgeSubdivision.cpp b/src/triangulate/quadedge/QuadEdgeSubdivision.cpp
index feefda1..5291798 100644
--- a/src/triangulate/quadedge/QuadEdgeSubdivision.cpp
+++ b/src/triangulate/quadedge/QuadEdgeSubdivision.cpp
@@ -383,7 +383,7 @@ public:
     {
     }
 
-    void visit(QuadEdge* triEdges[3])
+    void visit(QuadEdge* triEdges[3]) override
     {
         geom::CoordinateSequence *coordSeq = coordSeqFact.create(4,0);
         for (int i = 0; i < 3; i++) {
@@ -400,7 +400,7 @@ class
 QuadEdgeSubdivision::TriangleCircumcentreVisitor : public TriangleVisitor
 {
 public:
-	void visit(QuadEdge* triEdges[3])
+	void visit(QuadEdge* triEdges[3]) override
 	{
 		Triangle triangle(triEdges[0]->orig().getCoordinate(),
 				triEdges[1]->orig().getCoordinate(), triEdges[2]->orig().getCoordinate());
diff --git a/tests/unit/geom/CoordinateArraySequenceTest.cpp b/tests/unit/geom/CoordinateArraySequenceTest.cpp
index 4d4162c..000504f 100644
--- a/tests/unit/geom/CoordinateArraySequenceTest.cpp
+++ b/tests/unit/geom/CoordinateArraySequenceTest.cpp
@@ -28,7 +28,7 @@ namespace tut
         {
           bool is3d;
           Filter() : is3d(false) {}
-          void filter_rw(geos::geom::Coordinate* c) const {
+          void filter_rw(geos::geom::Coordinate* c) const override {
             if ( is3d ) {
               if ( ISNAN(c->z) ) c->z = 0.0;
             }
diff --git a/tests/unit/geom/GeometryComponentFilterTest.cpp b/tests/unit/geom/GeometryComponentFilterTest.cpp
index 09fbf11..9f6a220 100644
--- a/tests/unit/geom/GeometryComponentFilterTest.cpp
+++ b/tests/unit/geom/GeometryComponentFilterTest.cpp
@@ -59,14 +59,14 @@ void object::test<1>()
             ensure(lineal.empty());
             ensure(nonlineal.empty());
         }
-        void filter_ro(geos::geom::Geometry const* g)
+        void filter_ro(geos::geom::Geometry const* g) override
         {
             if (dynamic_cast<geos::geom::Lineal const*>(g))
                 lineal.push_back(g);
             else
                 nonlineal.push_back(g);
         }
-        void filter_rw(geos::geom::Geometry*) {}
+        void filter_rw(geos::geom::Geometry*) override {}
     };
 
     GeometryRefArray lineal;
diff --git a/tests/unit/geom/GeometryFilterTest.cpp b/tests/unit/geom/GeometryFilterTest.cpp
index c3b1f92..99afe5e 100644
--- a/tests/unit/geom/GeometryFilterTest.cpp
+++ b/tests/unit/geom/GeometryFilterTest.cpp
@@ -59,14 +59,14 @@ void object::test<1>()
             ensure(lineal.empty());
             ensure(nonlineal.empty());
         }
-        void filter_ro(geos::geom::Geometry const* g)
+        void filter_ro(geos::geom::Geometry const* g) override
         {
             if (dynamic_cast<geos::geom::Lineal const*>(g))
                 lineal.push_back(g);
             else
                 nonlineal.push_back(g);
         }
-        void filter_rw(geos::geom::Geometry*) {}
+        void filter_rw(geos::geom::Geometry*) override {}
     };
 
     GeometryRefArray lineal;
diff --git a/tests/unit/simplify/DouglasPeuckerSimplifierTest.cpp b/tests/unit/simplify/DouglasPeuckerSimplifierTest.cpp
index edeb61d..9be23a6 100644
--- a/tests/unit/simplify/DouglasPeuckerSimplifierTest.cpp
+++ b/tests/unit/simplify/DouglasPeuckerSimplifierTest.cpp
@@ -301,18 +301,18 @@ namespace tut
         {
             double f;
             Multiplier(double f) : f(f) {}
-            void filter_rw(CoordinateSequence& seq, std::size_t i)
+            void filter_rw(CoordinateSequence& seq, std::size_t i) override
             {
                 seq.setOrdinate(i, CoordinateSequence::X, seq[i].x * f);
                 seq.setOrdinate(i, CoordinateSequence::Y, seq[i].y * f);
             }
-            void filter_ro(const CoordinateSequence& seq, std::size_t i)
+            void filter_ro(const CoordinateSequence& seq, std::size_t i) override
             {
                 ::geos::ignore_unused_variable_warning(seq);
                 ::geos::ignore_unused_variable_warning(i);
             }
-            bool isDone() const { return false; }
-            bool isGeometryChanged() const { return true; }
+            bool isDone() const override { return false; }
+            bool isGeometryChanged() const override { return true; }
         };
 
         Multiplier m(2047);
diff --git a/tests/unit/tut/tut.hpp b/tests/unit/tut/tut.hpp
index ccb4d06..e8aabd8 100644
--- a/tests/unit/tut/tut.hpp
+++ b/tests/unit/tut/tut.hpp
@@ -107,7 +107,7 @@ public:
      */
     bool called_method_was_a_dummy_test_;
 
-    virtual ~test_object()
+    ~test_object() override
     {
     }
 
@@ -338,7 +338,7 @@ public:
     /**
      * Reset test position before first test.
      */
-    void rewind()
+    void rewind() override
     {
         current_test_ = tests_.begin();
     }
@@ -346,7 +346,7 @@ public:
     /**
      * Runs next test.
      */
-    bool run_next(test_result &tr)
+    bool run_next(test_result &tr) override
     {
         if (current_test_ == tests_.end())
         {
@@ -371,7 +371,7 @@ public:
     /**
      * Runs one test by position.
      */
-    bool run_test(int n, test_result &tr)
+    bool run_test(int n, test_result &tr) override
     {
         if (tests_.rbegin() == tests_.rend() ||
             tests_.rbegin()->first < n)
diff --git a/tests/unit/tut/tut_console_reporter.hpp b/tests/unit/tut/tut_console_reporter.hpp
index 614e1f2..28ee4ca 100644
--- a/tests/unit/tut/tut_console_reporter.hpp
+++ b/tests/unit/tut/tut_console_reporter.hpp
@@ -108,12 +108,12 @@ public:
         init();
     }
 
-    void run_started()
+    void run_started() override
     {
         init();
     }
 
-    void test_completed(const tut::test_result& tr)
+    void test_completed(const tut::test_result& tr) override
     {
         if (tr.group != current_group)
         {
@@ -156,7 +156,7 @@ public:
         }
     }
 
-    void run_completed()
+    void run_completed() override
     {
         os << std::endl;
 
@@ -256,7 +256,7 @@ public:
         os << std::endl;
     }
 
-    virtual bool all_ok() const
+    bool all_ok() const override
     {
         return not_passed.empty();
     }
diff --git a/tests/unit/tut/tut_exception.hpp b/tests/unit/tut/tut_exception.hpp
index 1ebea34..4120428 100644
--- a/tests/unit/tut/tut_exception.hpp
+++ b/tests/unit/tut/tut_exception.hpp
@@ -27,12 +27,12 @@ struct tut_error : public std::exception
         return "tut::tut_error";
     }
 
-    const char* what() const throw()
+    const char* what() const throw() override
     {
         return err_msg.c_str();
     }
 
-    ~tut_error() throw()
+    ~tut_error() throw() override
     {
     }
 
@@ -52,12 +52,12 @@ struct no_such_group : public tut_error
     {
     }
 
-    virtual std::string type() const
+    std::string type() const override
     {
         return "tut::no_such_group";
     }
 
-    ~no_such_group() throw()
+    ~no_such_group() throw() override
     {
     }
 };
@@ -72,12 +72,12 @@ struct no_such_test : public tut_error
     {
     }
 
-    virtual std::string type() const
+    std::string type() const override
     {
         return "tut::no_such_test";
     }
 
-    ~no_such_test() throw()
+    ~no_such_test() throw() override
     {
     }
 };
@@ -93,17 +93,17 @@ struct bad_ctor : public tut_error
     {
     }
 
-    test_result::result_type result() const
+    test_result::result_type result() const override
     {
         return test_result::ex_ctor;
     }
 
-    virtual std::string type() const
+    std::string type() const override
     {
         return "tut::bad_ctor";
     }
 
-    ~bad_ctor() throw()
+    ~bad_ctor() throw() override
     {
     }
 };
@@ -118,17 +118,17 @@ struct failure : public tut_error
     {
     }
 
-    test_result::result_type result() const
+    test_result::result_type result() const override
     {
         return test_result::fail;
     }
 
-    virtual std::string type() const
+    std::string type() const override
     {
         return "tut::failure";
     }
 
-    ~failure() throw()
+    ~failure() throw() override
     {
     }
 };
@@ -143,17 +143,17 @@ struct warning : public tut_error
     {
     }
 
-    test_result::result_type result() const
+    test_result::result_type result() const override
     {
         return test_result::warn;
     }
 
-    virtual std::string type() const
+    std::string type() const override
     {
         return "tut::warning";
     }
 
-    ~warning() throw()
+    ~warning() throw() override
     {
     }
 };
@@ -168,17 +168,17 @@ struct seh : public tut_error
     {
     }
 
-    virtual test_result::result_type result() const
+    test_result::result_type result() const override
     {
         return test_result::term;
     }
 
-    virtual std::string type() const
+    std::string type() const override
     {
         return "tut::seh";
     }
 
-    ~seh() throw()
+    ~seh() throw() override
     {
     }
 };
@@ -193,17 +193,17 @@ struct rethrown : public failure
     {
     }
 
-    virtual test_result::result_type result() const
+    test_result::result_type result() const override
     {
         return test_result::rethrown;
     }
 
-    virtual std::string type() const
+    std::string type() const override
     {
         return "tut::rethrown";
     }
 
-    ~rethrown() throw()
+    ~rethrown() throw() override
     {
     }
 
@@ -217,17 +217,17 @@ struct skipped : public tut_error
     {
     }
 
-    virtual test_result::result_type result() const
+    test_result::result_type result() const override
     {
         return test_result::skipped;
     }
 
-    virtual std::string type() const
+    std::string type() const override
     {
         return "tut::skipped";
     }
 
-    ~skipped() throw()
+    ~skipped() throw() override
     {
     }
 };
diff --git a/tests/unit/tut/tut_result.hpp b/tests/unit/tut/tut_result.hpp
index 28a5671..078f257 100644
--- a/tests/unit/tut/tut_result.hpp
+++ b/tests/unit/tut/tut_result.hpp
@@ -169,7 +169,7 @@ struct test_result : public test_result_posix
     {
     }
 
-    virtual ~test_result()
+    ~test_result() override
     {
     }
 };
diff --git a/tests/xmltester/tinyxml/tinyxml.h b/tests/xmltester/tinyxml/tinyxml.h
index 92b4264..31b873a 100644
--- a/tests/xmltester/tinyxml/tinyxml.h
+++ b/tests/xmltester/tinyxml/tinyxml.h
@@ -471,7 +471,7 @@ public:
 		TYPECOUNT
 	};
 
-	virtual ~TiXmlNode();
+	~TiXmlNode() override;
 
 	/** The meaning of 'value' changes for the specific type of
 		TiXmlNode.
@@ -865,10 +865,10 @@ public:
 	/*	Attribute parsing starts: first letter of the name
 						 returns: the next char after the value end quote
 	*/
-	virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
+	const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ) override;
 
 	// Prints this Attribute to a FILE stream.
-	virtual void Print( FILE* cfile, int depth ) const {
+	void Print( FILE* cfile, int depth ) const override {
 		Print( cfile, depth, nullptr );
 	}
 	void Print( FILE* cfile, int depth, TIXML_STRING* str ) const;
@@ -956,7 +956,7 @@ public:
 
 	void operator=( const TiXmlElement& base );
 
-	virtual ~TiXmlElement();
+	~TiXmlElement() override;
 
 	/** Given an attribute name, Attribute() returns the value
 		for the attribute of that name, or null if none exists.
@@ -1112,21 +1112,21 @@ public:
 	const char* GetText() const;
 
 	/// Creates a new Element and returns it - the returned element is a copy.
-	virtual TiXmlNode* Clone() const;
+	TiXmlNode* Clone() const override;
 	// Print the Element to a FILE stream.
-	virtual void Print( FILE* cfile, int depth ) const;
+	void Print( FILE* cfile, int depth ) const override;
 
 	/*	Attribtue parsing starts: next char past '<'
 						 returns: next char past '>'
 	*/
-	virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
+	const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ) override;
 
-	virtual const TiXmlElement*     ToElement()     const { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
-	virtual TiXmlElement*           ToElement()	          { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
+	const TiXmlElement*     ToElement()     const override { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
+	TiXmlElement*           ToElement() override	          { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
 
 	/** Walk the XML tree visiting this node and all of its children. 
 	*/
-	virtual bool Accept( TiXmlVisitor* visitor ) const;
+	bool Accept( TiXmlVisitor* visitor ) const override;
 
 protected:
 
@@ -1163,24 +1163,24 @@ public:
 	TiXmlComment( const TiXmlComment& );
 	void operator=( const TiXmlComment& base );
 
-	virtual ~TiXmlComment()	{}
+	~TiXmlComment() override	{}
 
 	/// Returns a copy of this Comment.
-	virtual TiXmlNode* Clone() const;
+	TiXmlNode* Clone() const override;
 	// Write this Comment to a FILE stream.
-	virtual void Print( FILE* cfile, int depth ) const;
+	void Print( FILE* cfile, int depth ) const override;
 
 	/*	Attribtue parsing starts: at the ! of the !--
 						 returns: next char past '>'
 	*/
-	virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
+	const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ) override;
 
-	virtual const TiXmlComment*  ToComment() const { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
-	virtual TiXmlComment*  ToComment() { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
+	const TiXmlComment*  ToComment() const override { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
+	TiXmlComment*  ToComment() override { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
 
 	/** Walk the XML tree visiting this node and all of its children. 
 	*/
-	virtual bool Accept( TiXmlVisitor* visitor ) const;
+	bool Accept( TiXmlVisitor* visitor ) const override;
 
 protected:
 	void CopyTo( TiXmlComment* target ) const;
@@ -1214,7 +1214,7 @@ public:
 		SetValue( initValue );
 		cdata = false;
 	}
-	virtual ~TiXmlText() {}
+	~TiXmlText() override {}
 
 	#ifdef TIXML_USE_STL
 	/// Constructor.
@@ -1229,25 +1229,25 @@ public:
 	void operator=( const TiXmlText& base )							 	{ base.CopyTo( this ); }
 
 	// Write this text object to a FILE stream.
-	virtual void Print( FILE* cfile, int depth ) const;
+	void Print( FILE* cfile, int depth ) const override;
 
 	/// Queries whether this represents text using a CDATA section.
 	bool CDATA() const				{ return cdata; }
 	/// Turns on or off a CDATA representation of text.
 	void SetCDATA( bool _cdata )	{ cdata = _cdata; }
 
-	virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
+	const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ) override;
 
-	virtual const TiXmlText* ToText() const { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
-	virtual TiXmlText*       ToText()       { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
+	const TiXmlText* ToText() const override { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
+	TiXmlText*       ToText() override       { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
 
 	/** Walk the XML tree visiting this node and all of its children. 
 	*/
-	virtual bool Accept( TiXmlVisitor* content ) const;
+	bool Accept( TiXmlVisitor* content ) const override;
 
 protected :
 	///  [internal use] Creates a new Element and returns it.
-	virtual TiXmlNode* Clone() const;
+	TiXmlNode* Clone() const override;
 	void CopyTo( TiXmlText* target ) const;
 
 	bool Blank() const;	// returns true if all white space and new lines
@@ -1295,7 +1295,7 @@ public:
 	TiXmlDeclaration( const TiXmlDeclaration& copy );
 	void operator=( const TiXmlDeclaration& copy );
 
-	virtual ~TiXmlDeclaration()	{}
+	~TiXmlDeclaration() override	{}
 
 	/// Version. Will return an empty string if none was found.
 	const char *Version() const			{ return version.c_str (); }
@@ -1305,21 +1305,21 @@ public:
 	const char *Standalone() const		{ return standalone.c_str (); }
 
 	/// Creates a copy of this Declaration and returns it.
-	virtual TiXmlNode* Clone() const;
+	TiXmlNode* Clone() const override;
 	// Print this declaration to a FILE stream.
 	virtual void Print( FILE* cfile, int depth, TIXML_STRING* str ) const;
-	virtual void Print( FILE* cfile, int depth ) const {
+	void Print( FILE* cfile, int depth ) const override {
 		Print( cfile, depth, nullptr );
 	}
 
-	virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
+	const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ) override;
 
-	virtual const TiXmlDeclaration* ToDeclaration() const { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
-	virtual TiXmlDeclaration*       ToDeclaration()       { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
+	const TiXmlDeclaration* ToDeclaration() const override { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
+	TiXmlDeclaration*       ToDeclaration() override       { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
 
 	/** Walk the XML tree visiting this node and all of its children. 
 	*/
-	virtual bool Accept( TiXmlVisitor* visitor ) const;
+	bool Accept( TiXmlVisitor* visitor ) const override;
 
 protected:
 	void CopyTo( TiXmlDeclaration* target ) const;
@@ -1347,24 +1347,24 @@ class TiXmlUnknown : public TiXmlNode
 {
 public:
 	TiXmlUnknown() : TiXmlNode( TiXmlNode::UNKNOWN )	{}
-	virtual ~TiXmlUnknown() {}
+	~TiXmlUnknown() override {}
 
 	TiXmlUnknown( const TiXmlUnknown& copy ) : TiXmlNode( TiXmlNode::UNKNOWN )		{ copy.CopyTo( this ); }
 	void operator=( const TiXmlUnknown& copy )										{ copy.CopyTo( this ); }
 
 	/// Creates a copy of this Unknown and returns it.
-	virtual TiXmlNode* Clone() const;
+	TiXmlNode* Clone() const override;
 	// Print this Unknown to a FILE stream.
-	virtual void Print( FILE* cfile, int depth ) const;
+	void Print( FILE* cfile, int depth ) const override;
 
-	virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
+	const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ) override;
 
-	virtual const TiXmlUnknown*     ToUnknown()     const { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
-	virtual TiXmlUnknown*           ToUnknown()	    { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
+	const TiXmlUnknown*     ToUnknown()     const override { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
+	TiXmlUnknown*           ToUnknown() override	    { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
 
 	/** Walk the XML tree visiting this node and all of its children. 
 	*/
-	virtual bool Accept( TiXmlVisitor* content ) const;
+	bool Accept( TiXmlVisitor* content ) const override;
 
 protected:
 	void CopyTo( TiXmlUnknown* target ) const;
@@ -1398,7 +1398,7 @@ public:
 	TiXmlDocument( const TiXmlDocument& copy );
 	void operator=( const TiXmlDocument& copy );
 
-	virtual ~TiXmlDocument() {}
+	~TiXmlDocument() override {}
 
 	/** Load a file using the current document value.
 		Returns true if successful. Will delete any existing
@@ -1439,7 +1439,7 @@ public:
 		method (either TIXML_ENCODING_LEGACY or TIXML_ENCODING_UTF8 will force TinyXml
 		to use that encoding, regardless of what TinyXml might otherwise try to detect.
 	*/
-	virtual const char* Parse( const char* p, TiXmlParsingData* data = nullptr, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING );
+	const char* Parse( const char* p, TiXmlParsingData* data = nullptr, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING ) override;
 
 	/** Get the root element -- the only top level element -- of the document.
 		In well formed XML, there should only be one. TinyXml is tolerant of
@@ -1521,20 +1521,20 @@ public:
 	//char* PrintToMemory() const; 
 
 	/// Print this Document to a FILE stream.
-	virtual void Print( FILE* cfile, int depth = 0 ) const;
+	void Print( FILE* cfile, int depth = 0 ) const override;
 	// [internal use]
 	void SetError( int err, const char* errorLocation, TiXmlParsingData* prevData, TiXmlEncoding encoding );
 
-	virtual const TiXmlDocument*    ToDocument()    const { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
-	virtual TiXmlDocument*          ToDocument()          { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
+	const TiXmlDocument*    ToDocument()    const override { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
+	TiXmlDocument*          ToDocument() override          { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
 
 	/** Walk the XML tree visiting this node and all of its children. 
 	*/
-	virtual bool Accept( TiXmlVisitor* content ) const;
+	bool Accept( TiXmlVisitor* content ) const override;
 
 protected :
 	// [internal use]
-	virtual TiXmlNode* Clone() const;
+	TiXmlNode* Clone() const override;
 	#ifdef TIXML_USE_STL
 	virtual void StreamIn( std::istream * in, TIXML_STRING * tag );
 	#endif
@@ -1736,16 +1736,16 @@ public:
 	TiXmlPrinter() : depth( 0 ), simpleTextPrint( false ),
 					 buffer(), indent( "    " ), lineBreak( "\n" ) {}
 
-	virtual bool VisitEnter( const TiXmlDocument& doc );
-	virtual bool VisitExit( const TiXmlDocument& doc );
+	bool VisitEnter( const TiXmlDocument& doc ) override;
+	bool VisitExit( const TiXmlDocument& doc ) override;
 
-	virtual bool VisitEnter( const TiXmlElement& element, const TiXmlAttribute* firstAttribute );
-	virtual bool VisitExit( const TiXmlElement& element );
+	bool VisitEnter( const TiXmlElement& element, const TiXmlAttribute* firstAttribute ) override;
+	bool VisitExit( const TiXmlElement& element ) override;
 
-	virtual bool Visit( const TiXmlDeclaration& declaration );
-	virtual bool Visit( const TiXmlText& text );
-	virtual bool Visit( const TiXmlComment& comment );
-	virtual bool Visit( const TiXmlUnknown& unknown );
+	bool Visit( const TiXmlDeclaration& declaration ) override;
+	bool Visit( const TiXmlText& text ) override;
+	bool Visit( const TiXmlComment& comment ) override;
+	bool Visit( const TiXmlUnknown& unknown ) override;
 
 	/** Set the indent characters for printing. By default 4 spaces
 		but tab (\t) is also useful, or null/empty string for no indentation.

-----------------------------------------------------------------------

Summary of changes:
 capi/geos_ts_c.cpp                                 |    4 +-
 include/geos/algorithm/MCPointInRing.h             |    6 +-
 include/geos/algorithm/NotRepresentableException.h |    2 +-
 include/geos/algorithm/SIRtreePointInRing.h        |    4 +-
 include/geos/algorithm/SimplePointInRing.h         |    4 +-
 .../algorithm/distance/DiscreteHausdorffDistance.h |    8 +-
 .../algorithm/locate/IndexedPointInAreaLocator.h   |    8 +-
 .../algorithm/locate/SimplePointInAreaLocator.h    |    2 +-
 include/geos/geom/CoordinateArraySequence.h        |   44 ++++----
 include/geos/geom/CoordinateArraySequenceFactory.h |    8 +-
 include/geos/geom/Geometry.h                       |    2 +-
 include/geos/geom/GeometryCollection.h             |   58 +++++------
 include/geos/geom/LineString.h                     |   52 +++++-----
 include/geos/geom/LinearRing.h                     |   14 +--
 include/geos/geom/MultiLineString.h                |   16 +--
 include/geos/geom/MultiPoint.h                     |   16 +--
 include/geos/geom/MultiPolygon.h                   |   18 ++--
 include/geos/geom/Point.h                          |   54 +++++-----
 include/geos/geom/Polygon.h                        |   58 +++++------
 .../geom/prep/AbstractPreparedPolygonContains.h    |    2 +-
 include/geos/geom/prep/BasicPreparedGeometry.h     |   24 ++---
 include/geos/geom/prep/PreparedLineString.h        |    4 +-
 include/geos/geom/prep/PreparedPoint.h             |    2 +-
 include/geos/geom/prep/PreparedPolygon.h           |   10 +-
 include/geos/geom/prep/PreparedPolygonContains.h   |    2 +-
 include/geos/geom/prep/PreparedPolygonCovers.h     |    2 +-
 .../geos/geom/util/ComponentCoordinateExtracter.h  |    4 +-
 include/geos/geom/util/CoordinateOperation.h       |    6 +-
 include/geos/geom/util/GeometryExtracter.h         |    2 +-
 include/geos/geom/util/LinearComponentExtracter.h  |    4 +-
 include/geos/geom/util/PointExtracter.h            |    4 +-
 include/geos/geom/util/PolygonExtracter.h          |    4 +-
 include/geos/geomgraph/DirectedEdge.h              |    2 +-
 include/geos/geomgraph/DirectedEdgeStar.h          |    8 +-
 include/geos/geomgraph/Edge.h                      |    6 +-
 include/geos/geomgraph/GeometryGraph.h             |    2 +-
 include/geos/geomgraph/Node.h                      |    6 +-
 include/geos/geomgraph/index/MonotoneChain.h       |    2 +-
 .../geomgraph/index/SimpleEdgeSetIntersector.h     |    4 +-
 .../geomgraph/index/SimpleMCSweepLineIntersector.h |    6 +-
 .../geomgraph/index/SimpleSweepLineIntersector.h   |    6 +-
 include/geos/geomgraph/index/SweepLineSegment.h    |    2 +-
 include/geos/index/bintree/Node.h                  |    4 +-
 include/geos/index/bintree/Root.h                  |    4 +-
 .../index/intervalrtree/IntervalRTreeBranchNode.h  |    4 +-
 .../index/intervalrtree/IntervalRTreeLeafNode.h    |    4 +-
 include/geos/index/quadtree/Node.h                 |    6 +-
 include/geos/index/quadtree/Quadtree.h             |   10 +-
 include/geos/index/quadtree/Root.h                 |    4 +-
 include/geos/index/strtree/AbstractNode.h          |    4 +-
 include/geos/index/strtree/GeometryItemDistance.h  |    2 +-
 include/geos/index/strtree/ItemBoundable.h         |    4 +-
 include/geos/index/strtree/SIRtree.h               |   12 +--
 include/geos/index/strtree/STRtree.h               |   20 ++--
 include/geos/io/ParseException.h                   |    2 +-
 include/geos/noding/BasicSegmentString.h           |   12 +--
 include/geos/noding/IntersectionAdder.h            |    4 +-
 include/geos/noding/IntersectionFinderAdder.h      |    4 +-
 include/geos/noding/IteratedNoder.h                |    6 +-
 include/geos/noding/MCIndexNoder.h                 |    8 +-
 .../noding/MCIndexSegmentSetMutualIntersector.h    |    8 +-
 include/geos/noding/NodedSegmentString.h           |   12 +--
 include/geos/noding/ScaledNoder.h                  |    6 +-
 include/geos/noding/SegmentIntersectionDetector.h  |    6 +-
 include/geos/noding/SimpleNoder.h                  |    4 +-
 .../geos/noding/SingleInteriorIntersectionFinder.h |    4 +-
 include/geos/noding/SinglePassNoder.h              |    6 +-
 include/geos/noding/snapround/MCIndexSnapRounder.h |    4 +-
 include/geos/noding/snapround/SimpleSnapRounder.h  |    4 +-
 .../distance/ConnectedElementLocationFilter.h      |    4 +-
 .../distance/ConnectedElementPointFilter.h         |    2 +-
 include/geos/operation/linemerge/LineMergeGraph.h  |    2 +-
 include/geos/operation/overlay/ElevationMatrix.h   |    6 +-
 include/geos/operation/overlay/MaximalEdgeRing.h   |    6 +-
 include/geos/operation/overlay/MinimalEdgeRing.h   |    6 +-
 .../geos/operation/overlay/OverlayNodeFactory.h    |    2 +-
 include/geos/operation/overlay/OverlayOp.h         |    2 +-
 .../geos/operation/polygonize/PolygonizeGraph.h    |    2 +-
 include/geos/operation/polygonize/Polygonizer.h    |    2 +-
 include/geos/operation/relate/EdgeEndBundle.h      |    4 +-
 include/geos/operation/relate/EdgeEndBundleStar.h  |    4 +-
 include/geos/operation/relate/RelateNode.h         |    4 +-
 include/geos/operation/relate/RelateNodeFactory.h  |    2 +-
 include/geos/operation/relate/RelateOp.h           |    2 +-
 .../operation/valid/SweeplineNestedRingTester.h    |    2 +-
 include/geos/planargraph/Node.h                    |    2 +-
 .../PrecisionReducerCoordinateOperation.h          |    2 +-
 .../quadedge/LastFoundQuadEdgeLocator.h            |    2 +-
 include/geos/util/AssertionFailedException.h       |    2 +-
 include/geos/util/GEOSException.h                  |    4 +-
 include/geos/util/IllegalArgumentException.h       |    2 +-
 include/geos/util/IllegalStateException.h          |    2 +-
 include/geos/util/TopologyException.h              |    2 +-
 include/geos/util/UniqueCoordinateArrayFilter.h    |    4 +-
 include/geos/util/UnsupportedOperationException.h  |    2 +-
 src/algorithm/BoundaryNodeRule.cpp                 |    8 +-
 src/geom/GeometryFactory.cpp                       |    2 +-
 src/index/strtree/SIRtree.cpp                      |    4 +-
 src/index/strtree/STRtree.cpp                      |    4 +-
 src/noding/GeometryNoder.cpp                       |    2 +-
 src/noding/ScaledNoder.cpp                         |    6 +-
 src/noding/snapround/MCIndexPointSnapper.cpp       |    8 +-
 .../distance/FacetSequenceTreeBuilder.cpp          |    2 +-
 src/operation/distance/IndexedFacetDistance.cpp    |    4 +-
 src/operation/overlay/OverlayOp.cpp                |    2 +-
 src/operation/overlay/snap/GeometrySnapper.cpp     |    2 +-
 src/operation/predicate/RectangleIntersects.cpp    |   12 +--
 src/precision/CommonBitsRemover.cpp                |    8 +-
 src/precision/MinimumClearance.cpp                 |    4 +-
 src/precision/SimpleGeometryPrecisionReducer.cpp   |    2 +-
 src/simplify/DouglasPeuckerSimplifier.cpp          |    6 +-
 src/simplify/LineSegmentIndex.cpp                  |    4 +-
 src/simplify/TopologyPreservingSimplifier.cpp      |    4 +-
 src/triangulate/quadedge/QuadEdgeSubdivision.cpp   |    4 +-
 tests/unit/geom/CoordinateArraySequenceTest.cpp    |    2 +-
 tests/unit/geom/GeometryComponentFilterTest.cpp    |    4 +-
 tests/unit/geom/GeometryFilterTest.cpp             |    4 +-
 .../unit/simplify/DouglasPeuckerSimplifierTest.cpp |    8 +-
 tests/unit/tut/tut.hpp                             |    8 +-
 tests/unit/tut/tut_console_reporter.hpp            |    8 +-
 tests/unit/tut/tut_exception.hpp                   |   48 ++++-----
 tests/unit/tut/tut_result.hpp                      |    2 +-
 tests/xmltester/tinyxml/tinyxml.h                  |  106 ++++++++++----------
 123 files changed, 507 insertions(+), 507 deletions(-)


hooks/post-receive
-- 
geos


More information about the geos-commits mailing list