From 2b7cefa9593cc25afc59b664d2c42b76c49edb32 Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (o)" <j.wuttke@fz-juelich.de>
Date: Thu, 24 Nov 2016 19:11:18 +0100
Subject: [PATCH] Corrected virtual / final, thanks to Travis warnings.

# Conflicts:
#	Core/Binning/ConstKBinAxis.h
---
 Core/Binning/ConstKBinAxis.h                | 11 ++++++-----
 Core/Binning/VariableBinAxis.h              |  4 ++--
 Core/Material/HomogeneousMagneticMaterial.h | 19 ++++++++-----------
 Core/Particle/ParticleDistribution.h        | 12 ++++++------
 4 files changed, 22 insertions(+), 24 deletions(-)

diff --git a/Core/Binning/ConstKBinAxis.h b/Core/Binning/ConstKBinAxis.h
index 33be5942421..d10c7c96b43 100644
--- a/Core/Binning/ConstKBinAxis.h
+++ b/Core/Binning/ConstKBinAxis.h
@@ -30,17 +30,18 @@ public:
     //! @param start low edge of first bin
     //! @param end upper edge of last bin
     ConstKBinAxis(const std::string& name, size_t nbins, double start, double end);
-    virtual ~ConstKBinAxis() {}
+    ~ConstKBinAxis() final {}
 
-    ConstKBinAxis* clone() const;
+    ConstKBinAxis* clone() const final {
+        return new ConstKBinAxis(getName(), m_nbins, m_start, m_end); }
 
-    ConstKBinAxis* createClippedAxis(double left, double right) const;
+    ConstKBinAxis* createClippedAxis(double left, double right) const final;
 
 protected:
     ConstKBinAxis(const std::string& name, size_t nbins);
 
-    void print(std::ostream& ostr) const;
-    bool equals(const IAxis& other) const;
+    void print(std::ostream& ostr) const final;
+    bool equals(const IAxis& other) const final;
 
     double m_start;
     double m_end;
diff --git a/Core/Binning/VariableBinAxis.h b/Core/Binning/VariableBinAxis.h
index 18d1d02dda2..61b5ef86676 100644
--- a/Core/Binning/VariableBinAxis.h
+++ b/Core/Binning/VariableBinAxis.h
@@ -51,13 +51,13 @@ public:
     std::vector<double> getBinCenters() const;
     std::vector<double> getBinBoundaries() const { return m_bin_boundaries; }
 
-    VariableBinAxis* createClippedAxis(double left, double right) const;
+    virtual VariableBinAxis* createClippedAxis(double left, double right) const;
 
 protected:
     VariableBinAxis(const std::string& name, int nbins = 0);
     void setBinBoundaries(const std::vector<double> &bin_boundaries);
 
-    void print(std::ostream& ostr) const;
+    virtual void print(std::ostream& ostr) const;
     virtual bool equals(const IAxis& other) const;
     size_t m_nbins;
 
diff --git a/Core/Material/HomogeneousMagneticMaterial.h b/Core/Material/HomogeneousMagneticMaterial.h
index 9d69917b487..985781db3d8 100644
--- a/Core/Material/HomogeneousMagneticMaterial.h
+++ b/Core/Material/HomogeneousMagneticMaterial.h
@@ -27,18 +27,16 @@ public:
 #ifndef SWIG
     EIGEN_MAKE_ALIGNED_OPERATOR_NEW
 #endif
-    //! Constructs a material with _name_, _refractive_index_ and
-    //! _magnetic_field_
-    HomogeneousMagneticMaterial(const std::string &name, const complex_t refractive_index,
+    //! Constructs a material with _name_, _refractive_index_ and _magnetic_field_
+    HomogeneousMagneticMaterial(const std::string& name, const complex_t refractive_index,
                                 const kvector_t magnetic_field);
 
-    //! Constructs a material with _name_, refractive_index parameters and
-    //! _magnetic_field_
+    //! Constructs a material with _name_, refractive_index parameters and _magnetic_field_
     HomogeneousMagneticMaterial(const std::string &name, double refractive_index_delta,
                                 double refractive_index_beta, const kvector_t magnetic_field);
 
-    HomogeneousMagneticMaterial* clone() const final override;
-    HomogeneousMagneticMaterial* cloneInverted() const final override;
+    HomogeneousMagneticMaterial* clone() const final;
+    HomogeneousMagneticMaterial* cloneInverted() const final;
 
     //! Get the magnetic field (in Tesla)
     kvector_t getMagneticField() const { return m_magnetic_field; }
@@ -48,7 +46,7 @@ public:
 
     //! Indicates that the material is not scalar. This means that different
     //! polarization states will be diffracted differently
-    virtual bool isScalarMaterial() const { return false; }
+    bool isScalarMaterial() const final { return false; }
 
 #ifndef SWIG
     //! Get the scattering matrix (~potential V) from the material.
@@ -57,11 +55,10 @@ public:
 #endif
 
     //! Create a new material that is transformed with respect to this one
-    virtual const IMaterial* createTransformedMaterial(
-        const Transform3D& transform) const;
+    const IMaterial* createTransformedMaterial(const Transform3D& transform) const final;
 
 protected:
-    virtual void print(std::ostream &ostr) const {
+    void print(std::ostream &ostr) const final {
         ostr << "HomMagMat:" << getName() << "<" << this << ">{ "
              << "R=" << m_refractive_index << ", B=" << m_magnetic_field << "}";  }
 
diff --git a/Core/Particle/ParticleDistribution.h b/Core/Particle/ParticleDistribution.h
index 3316bd5e434..1ab8e0c662b 100644
--- a/Core/Particle/ParticleDistribution.h
+++ b/Core/Particle/ParticleDistribution.h
@@ -29,19 +29,19 @@ class BA_CORE_API_ ParticleDistribution : public IAbstractParticle
 public:
     ParticleDistribution(const IParticle& prototype, const ParameterDistribution& par_distr);
 
-    virtual ParticleDistribution* clone() const;
-    virtual ParticleDistribution* cloneInvertB() const;
+    ParticleDistribution* clone() const final;
+    ParticleDistribution* cloneInvertB() const final;
 
-    void accept(ISampleVisitor* visitor) const override final { visitor->visit(this); }
+    void accept(ISampleVisitor* visitor) const final { visitor->visit(this); }
 
     //! Returns textual representation of *this and its descendants.
-    virtual std::string to_str(int indent=0) const;
+    std::string to_str(int indent=0) const final;
 
     //! Sets the refractive index of the ambient material.
-    virtual void setAmbientMaterial(const IMaterial& material);
+    void setAmbientMaterial(const IMaterial& material) final;
 
     //! Returns particle's material.
-    virtual const IMaterial* getAmbientMaterial() const;
+    const IMaterial* getAmbientMaterial() const final;
 
     //! Returns list of new particles generated according to a distribution.
     std::vector<const IParticle*> generateParticles() const;
-- 
GitLab