src: drop 'virtual' from functions marked 'final' or 'override'

Change-Id: Ieb6df864ab82f77b2bee9e83aa0bfa2005715950
Refs: #3857
diff --git a/src/mgmt/nfd/control-command.hpp b/src/mgmt/nfd/control-command.hpp
index 7544156..1db9f13 100644
--- a/src/mgmt/nfd/control-command.hpp
+++ b/src/mgmt/nfd/control-command.hpp
@@ -144,13 +144,13 @@
 public:
   FaceCreateCommand();
 
-  virtual void
+  void
   applyDefaultsToRequest(ControlParameters& parameters) const override;
 
-  virtual void
+  void
   validateRequest(const ControlParameters& parameters) const override;
 
-  virtual void
+  void
   validateResponse(const ControlParameters& parameters) const override;
 };
 
@@ -165,17 +165,17 @@
 public:
   FaceUpdateCommand();
 
-  virtual void
+  void
   applyDefaultsToRequest(ControlParameters& parameters) const override;
 
-  virtual void
+  void
   validateRequest(const ControlParameters& parameters) const override;
 
   /**
    * \note This can only validate ControlParameters in a success response.
    *       Failure responses should be validated with validateRequest.
    */
-  virtual void
+  void
   validateResponse(const ControlParameters& parameters) const override;
 };
 
@@ -190,10 +190,10 @@
 public:
   FaceDestroyCommand();
 
-  virtual void
+  void
   validateRequest(const ControlParameters& parameters) const override;
 
-  virtual void
+  void
   validateResponse(const ControlParameters& parameters) const override;
 };
 
@@ -205,10 +205,10 @@
 class FaceLocalControlCommand : public ControlCommand
 {
 public:
-  virtual void
+  void
   validateRequest(const ControlParameters& parameters) const override;
 
-  virtual void
+  void
   validateResponse(const ControlParameters& parameters) const override;
 
 protected:
@@ -251,10 +251,10 @@
 public:
   FibAddNextHopCommand();
 
-  virtual void
+  void
   applyDefaultsToRequest(ControlParameters& parameters) const override;
 
-  virtual void
+  void
   validateResponse(const ControlParameters& parameters) const override;
 };
 
@@ -269,10 +269,10 @@
 public:
   FibRemoveNextHopCommand();
 
-  virtual void
+  void
   applyDefaultsToRequest(ControlParameters& parameters) const override;
 
-  virtual void
+  void
   validateResponse(const ControlParameters& parameters) const override;
 };
 
@@ -299,10 +299,10 @@
 public:
   StrategyChoiceUnsetCommand();
 
-  virtual void
+  void
   validateRequest(const ControlParameters& parameters) const override;
 
-  virtual void
+  void
   validateResponse(const ControlParameters& parameters) const override;
 };
 
@@ -317,10 +317,10 @@
 public:
   RibRegisterCommand();
 
-  virtual void
+  void
   applyDefaultsToRequest(ControlParameters& parameters) const override;
 
-  virtual void
+  void
   validateResponse(const ControlParameters& parameters) const override;
 };
 
@@ -335,10 +335,10 @@
 public:
   RibUnregisterCommand();
 
-  virtual void
+  void
   applyDefaultsToRequest(ControlParameters& parameters) const override;
 
-  virtual void
+  void
   validateResponse(const ControlParameters& parameters) const override;
 };
 
diff --git a/src/mgmt/nfd/control-parameters.hpp b/src/mgmt/nfd/control-parameters.hpp
index d57c75d..a798459 100644
--- a/src/mgmt/nfd/control-parameters.hpp
+++ b/src/mgmt/nfd/control-parameters.hpp
@@ -99,10 +99,10 @@
   size_t
   wireEncode(EncodingImpl<TAG>& encoder) const;
 
-  virtual Block
+  Block
   wireEncode() const final;
 
-  virtual void
+  void
   wireDecode(const Block& wire) final;
 
 public: // getters & setters
diff --git a/src/mgmt/nfd/status-dataset.hpp b/src/mgmt/nfd/status-dataset.hpp
index 9eb43d4..09c1e14 100644
--- a/src/mgmt/nfd/status-dataset.hpp
+++ b/src/mgmt/nfd/status-dataset.hpp
@@ -170,7 +170,7 @@
   FaceQueryDataset(const FaceQueryFilter& filter);
 
 private:
-  virtual void
+  void
   addParameters(Name& name) const override;
 
 private:
diff --git a/src/security/command-interest-validator.hpp b/src/security/command-interest-validator.hpp
index e789f09..c377142 100644
--- a/src/security/command-interest-validator.hpp
+++ b/src/security/command-interest-validator.hpp
@@ -88,7 +88,6 @@
      *  and causes every command Interest to be processed as initial.
      */
     time::nanoseconds timestampTtl = time::hours(1);
-
   };
 
   /** \brief error codes
@@ -129,7 +128,7 @@
    *
    *  The validation request is rejected if any step in this procedure fails.
    */
-  virtual void
+  void
   checkPolicy(const Interest& interest, int nSteps,
               const OnInterestValidated& accept,
               const OnInterestValidationFailed& reject,
@@ -139,7 +138,7 @@
    *
    *  The validation request is redirected to the inner validator.
    */
-  virtual void
+  void
   checkPolicy(const Data& data, int nSteps,
               const OnDataValidated& accept,
               const OnDataValidationFailed& reject,
diff --git a/src/security/conf/checker.hpp b/src/security/conf/checker.hpp
index c4ec3ca..0bed1a9 100644
--- a/src/security/conf/checker.hpp
+++ b/src/security/conf/checker.hpp
@@ -104,13 +104,13 @@
     }
   }
 
-  virtual int8_t
+  int8_t
   check(const Data& data) override
   {
     return check(data, data.getSignature());
   }
 
-  virtual int8_t
+  int8_t
   check(const Interest& interest) override
   {
     try {
@@ -211,13 +211,13 @@
     }
   }
 
-  virtual int8_t
+  int8_t
   check(const Data& data) override
   {
     return check(data, data.getSignature());
   }
 
-  virtual int8_t
+  int8_t
   check(const Interest& interest) override
   {
     try {
diff --git a/src/security/pib-memory.hpp b/src/security/pib-memory.hpp
index 1a859ce..50da3dd 100644
--- a/src/security/pib-memory.hpp
+++ b/src/security/pib-memory.hpp
@@ -51,76 +51,76 @@
 
 public: // TpmLocator management
 
-  virtual void
+  void
   setTpmLocator(const std::string& tpmLocator) override;
 
-  virtual std::string
+  std::string
   getTpmLocator() const override;
 
 public: // Identity management
 
-  virtual bool
+  bool
   hasIdentity(const Name& identity) const override;
 
-  virtual void
+  void
   addIdentity(const Name& identity) override;
 
-  virtual void
+  void
   removeIdentity(const Name& identity) override;
 
-  virtual std::set<Name>
+  std::set<Name>
   getIdentities() const override;
 
-  virtual void
+  void
   setDefaultIdentity(const Name& identityName) override;
 
-  virtual Name
+  Name
   getDefaultIdentity() const override;
 
 public: // Key management
 
-  virtual bool
+  bool
   hasKey(const Name& identity, const name::Component& keyId) const override;
 
-  virtual void
+  void
   addKey(const Name& identity, const name::Component& keyId, const v1::PublicKey& publicKey) override;
 
-  virtual void
+  void
   removeKey(const Name& identity, const name::Component& keyId) override;
 
-  virtual v1::PublicKey
+  v1::PublicKey
   getKeyBits(const Name& identity, const name::Component& keyId) const override;
 
-  virtual std::set<name::Component>
+  std::set<name::Component>
   getKeysOfIdentity(const Name& identity) const override;
 
-  virtual void
+  void
   setDefaultKeyOfIdentity(const Name& identity, const name::Component& keyId) override;
 
-  virtual name::Component
+  name::Component
   getDefaultKeyOfIdentity(const Name& identity) const override;
 
 public: // Certificate management
 
-  virtual bool
+  bool
   hasCertificate(const Name& certName) const override;
 
-  virtual void
+  void
   addCertificate(const v1::IdentityCertificate& certificate) override;
 
-  virtual void
+  void
   removeCertificate(const Name& certName) override;
 
-  virtual v1::IdentityCertificate
+  v1::IdentityCertificate
   getCertificate(const Name& certName) const override;
 
-  virtual std::set<Name>
+  std::set<Name>
   getCertificatesOfKey(const Name& identity, const name::Component& keyId) const override;
 
-  virtual void
+  void
   setDefaultCertificateOfKey(const Name& identity, const name::Component& keyId, const Name& certName) override;
 
-  virtual v1::IdentityCertificate
+  v1::IdentityCertificate
   getDefaultCertificateOfKey(const Name& identity, const name::Component& keyId) const override;
 
 private: // Key management
diff --git a/src/security/pib-sqlite3.hpp b/src/security/pib-sqlite3.hpp
index f8665c5..9093957 100644
--- a/src/security/pib-sqlite3.hpp
+++ b/src/security/pib-sqlite3.hpp
@@ -60,77 +60,77 @@
 
 public: // TpmLocator management
 
-  virtual void
+  void
   setTpmLocator(const std::string& tpmLocator) final;
 
-  virtual std::string
+  std::string
   getTpmLocator() const final;
 
 public: // Identity management
 
-  virtual bool
+  bool
   hasIdentity(const Name& identity) const final;
 
-  virtual void
+  void
   addIdentity(const Name& identity) final;
 
-  virtual void
+  void
   removeIdentity(const Name& identity) final;
 
-  virtual std::set<Name>
+  std::set<Name>
   getIdentities() const final;
 
-  virtual void
+  void
   setDefaultIdentity(const Name& identityName) final;
 
-  virtual Name
+  Name
   getDefaultIdentity() const final;
 
 public: // Key management
 
-  virtual bool
+  bool
   hasKey(const Name& identity, const name::Component& keyId) const final;
 
-  virtual void
+  void
   addKey(const Name& identity, const name::Component& keyId, const v1::PublicKey& publicKey) final;
 
-  virtual void
+  void
   removeKey(const Name& identity, const name::Component& keyId) final;
 
-  virtual v1::PublicKey
+  v1::PublicKey
   getKeyBits(const Name& identity, const name::Component& keyId) const final;
 
-  virtual std::set<name::Component>
+  std::set<name::Component>
   getKeysOfIdentity(const Name& identity) const final;
 
-  virtual void
+  void
   setDefaultKeyOfIdentity(const Name& identity, const name::Component& keyId) final;
 
-  virtual name::Component
+  name::Component
   getDefaultKeyOfIdentity(const Name& identity) const final;
 
 public: // Certificate Management
 
-  virtual bool
+  bool
   hasCertificate(const Name& certName) const final;
 
-  virtual void
+  void
   addCertificate(const v1::IdentityCertificate& certificate) final;
 
-  virtual void
+  void
   removeCertificate(const Name& certName) final;
 
-  virtual v1::IdentityCertificate
+  v1::IdentityCertificate
   getCertificate(const Name& certName) const final;
 
-  virtual std::set<Name>
+  std::set<Name>
   getCertificatesOfKey(const Name& identity, const name::Component& keyId) const final;
 
-  virtual void
+  void
   setDefaultCertificateOfKey(const Name& identity, const name::Component& keyId,
                              const Name& certName) final;
 
-  virtual v1::IdentityCertificate
+  v1::IdentityCertificate
   getDefaultCertificateOfKey(const Name& identity, const name::Component& keyId) const final;
 
 private:
diff --git a/src/security/transform/base64-decode.hpp b/src/security/transform/base64-decode.hpp
index cfd5876..0ef0a46 100644
--- a/src/security/transform/base64-decode.hpp
+++ b/src/security/transform/base64-decode.hpp
@@ -49,7 +49,7 @@
   /**
    * @brief Read partial transformation results into output buffer and write them into next module.
    */
-  virtual void
+  void
   preTransform() final;
 
   /**
@@ -57,7 +57,7 @@
    *
    * @return number of bytes that have been accepted by the converter
    */
-  virtual size_t
+  size_t
   convert(const uint8_t* buf, size_t size) final;
 
   /**
@@ -65,7 +65,7 @@
    *
    * This method with read all decoding results from the converter and write them into next module.
    */
-  virtual void
+  void
   finalize() final;
 
   /**
diff --git a/src/security/transform/base64-encode.hpp b/src/security/transform/base64-encode.hpp
index ac9c664..7e9d99d 100644
--- a/src/security/transform/base64-encode.hpp
+++ b/src/security/transform/base64-encode.hpp
@@ -46,14 +46,14 @@
   /**
    * @brief Read partial transformation result (if exists) from BIO
    */
-  virtual void
+  void
   preTransform() final;
 
   /**
-   * @brief Encode @data into base64 format.
+   * @brief Encode @p data into base64 format.
    * @return The number of input bytes that have been accepted by the converter.
    */
-  virtual size_t
+  size_t
   convert(const uint8_t* data, size_t dataLen) final;
 
   /**
@@ -61,7 +61,7 @@
    *
    * This method with read all encoding results from the converter and write them into next module.
    */
-  virtual void
+  void
   finalize() final;
 
   /**
diff --git a/src/security/transform/block-cipher.hpp b/src/security/transform/block-cipher.hpp
index dd67858..885bd43 100644
--- a/src/security/transform/block-cipher.hpp
+++ b/src/security/transform/block-cipher.hpp
@@ -56,7 +56,7 @@
   /**
    * @brief Read partial transformation result (if exists) from BIO
    */
-  virtual void
+  void
   preTransform() final;
 
   /**
@@ -64,13 +64,13 @@
    *
    * @return number of bytes that are actually accepted
    */
-  virtual size_t
+  size_t
   convert(const uint8_t* data, size_t dataLen) final;
 
   /**
    * @brief Finalize the encryption
    */
-  virtual void
+  void
   finalize() final;
 
   /**
diff --git a/src/security/transform/bool-sink.hpp b/src/security/transform/bool-sink.hpp
index 12e62c9..d7d02e3 100644
--- a/src/security/transform/bool-sink.hpp
+++ b/src/security/transform/bool-sink.hpp
@@ -49,13 +49,13 @@
    *
    * @return the same value as @p size.
    */
-  virtual size_t
+  size_t
   doWrite(const uint8_t* buf, size_t size) final;
 
   /**
    * @brief Finalize sink processing
    */
-  virtual void
+  void
   doEnd() final;
 
 private:
diff --git a/src/security/transform/buffer-source.hpp b/src/security/transform/buffer-source.hpp
index 0833a0f..c091d98 100644
--- a/src/security/transform/buffer-source.hpp
+++ b/src/security/transform/buffer-source.hpp
@@ -62,7 +62,7 @@
   /**
    * @brief Write the whole buffer into the next module.
    */
-  virtual void
+  void
   doPump() final;
 
 private:
diff --git a/src/security/transform/digest-filter.hpp b/src/security/transform/digest-filter.hpp
index 935899f..952c4a7 100644
--- a/src/security/transform/digest-filter.hpp
+++ b/src/security/transform/digest-filter.hpp
@@ -47,13 +47,13 @@
    *
    * @return The number of bytes that have been accepted
    */
-  virtual size_t
+  size_t
   convert(const uint8_t* buf, size_t size) final;
 
   /**
    * @brief Finalize digest calculation and write the digest into next module.
    */
-  virtual void
+  void
   finalize() final;
 
 private:
diff --git a/src/security/transform/hex-decode.hpp b/src/security/transform/hex-decode.hpp
index 77d477d..5601ca4 100644
--- a/src/security/transform/hex-decode.hpp
+++ b/src/security/transform/hex-decode.hpp
@@ -50,13 +50,13 @@
    *
    * @return number of input bytes that are accepted
    */
-  virtual size_t
+  size_t
   convert(const uint8_t* buf, size_t size) final;
 
   /**
    * @throws Error if pending byte exists.
    */
-  virtual void
+  void
   finalize() final;
 
   /**
diff --git a/src/security/transform/hex-encode.hpp b/src/security/transform/hex-encode.hpp
index 95fc6e8..14a9b41 100644
--- a/src/security/transform/hex-encode.hpp
+++ b/src/security/transform/hex-encode.hpp
@@ -51,7 +51,7 @@
    *
    * @return The number of input bytes that have been accepted by the converter.
    */
-  virtual size_t
+  size_t
   convert(const uint8_t* data, size_t dataLen) final;
 
   /**
diff --git a/src/security/transform/hmac-filter.hpp b/src/security/transform/hmac-filter.hpp
index 5409952..0cec1fd 100644
--- a/src/security/transform/hmac-filter.hpp
+++ b/src/security/transform/hmac-filter.hpp
@@ -48,13 +48,13 @@
    *
    * @return The number of bytes that are actually accepted
    */
-  virtual size_t
+  size_t
   convert(const uint8_t* buf, size_t size) final;
 
   /**
    * @brief Finalize HMAC calculation and write the HMAC into next module.
    */
-  virtual void
+  void
   finalize() final;
 
 private:
diff --git a/src/security/transform/signer-filter.hpp b/src/security/transform/signer-filter.hpp
index 8db11f3..dc4ffff 100644
--- a/src/security/transform/signer-filter.hpp
+++ b/src/security/transform/signer-filter.hpp
@@ -47,13 +47,13 @@
    *
    * @return The number of bytes that are actually accepted
    */
-  virtual size_t
+  size_t
   convert(const uint8_t* buf, size_t size) final;
 
   /**
    * @brief Finalize signing and write the signature into next module.
    */
-  virtual void
+  void
   finalize() final;
 
 private:
diff --git a/src/security/transform/step-source.hpp b/src/security/transform/step-source.hpp
index 76388f7..a017fc6 100644
--- a/src/security/transform/step-source.hpp
+++ b/src/security/transform/step-source.hpp
@@ -68,9 +68,8 @@
    *
    * use write() and end() method explicitly to input data.
    */
-  virtual void
+  void
   doPump() final;
-
 };
 
 typedef StepSource stepSource;
diff --git a/src/security/transform/stream-sink.hpp b/src/security/transform/stream-sink.hpp
index ed41cbd..f384dc4 100644
--- a/src/security/transform/stream-sink.hpp
+++ b/src/security/transform/stream-sink.hpp
@@ -47,13 +47,13 @@
    *
    * @return number of bytes that have been written into the stream
    */
-  virtual size_t
+  size_t
   doWrite(const uint8_t* buf, size_t size) final;
 
   /**
    * @brief Finalize sink processing
    */
-  virtual void
+  void
   doEnd() final;
 
 private:
diff --git a/src/security/transform/stream-source.hpp b/src/security/transform/stream-source.hpp
index b818fe7..5dcefdd 100644
--- a/src/security/transform/stream-source.hpp
+++ b/src/security/transform/stream-source.hpp
@@ -49,7 +49,7 @@
   /**
    * @brief Read bytes from the input stream until EOF is reached and write them into the next module.
    */
-  virtual void
+  void
   doPump() final;
 
 public:
diff --git a/src/security/transform/strip-space.hpp b/src/security/transform/strip-space.hpp
index 7cc4dc8..d0e50aa 100644
--- a/src/security/transform/strip-space.hpp
+++ b/src/security/transform/strip-space.hpp
@@ -44,7 +44,7 @@
   StripSpace(const char* whitespaces = DEFAULT_WHITESPACES);
 
 private:
-  virtual size_t
+  size_t
   convert(const uint8_t* buf, size_t buflen) final;
 
 private:
diff --git a/src/security/transform/transform-base.hpp b/src/security/transform/transform-base.hpp
index 94fd43c..a06f0b1 100644
--- a/src/security/transform/transform-base.hpp
+++ b/src/security/transform/transform-base.hpp
@@ -222,7 +222,7 @@
   /**
    * @brief Abstraction of data processing in an intermediate module
    */
-  virtual size_t
+  size_t
   doWrite(const uint8_t* data, size_t dataLen) final;
 
   /**
@@ -230,7 +230,7 @@
    *
    * This method will not return until all transformation result is written into next module
    */
-  virtual void
+  void
   doEnd() final;
 
   /**
diff --git a/src/security/transform/verifier-filter.hpp b/src/security/transform/verifier-filter.hpp
index ee69f03..7fed9fc 100644
--- a/src/security/transform/verifier-filter.hpp
+++ b/src/security/transform/verifier-filter.hpp
@@ -49,13 +49,13 @@
    *
    * @return The number of bytes that are actually written
    */
-  virtual size_t
+  size_t
   convert(const uint8_t* buf, size_t size) final;
 
   /**
    * @brief Finalize verification and write the result (single byte) into next module.
    */
-  virtual void
+  void
   finalize() final;
 
 private:
diff --git a/src/security/validator-config.hpp b/src/security/validator-config.hpp
index a477325..2a5fac9 100644
--- a/src/security/validator-config.hpp
+++ b/src/security/validator-config.hpp
@@ -90,14 +90,14 @@
   isEmpty();
 
 protected:
-  virtual void
+  void
   checkPolicy(const Data& data,
               int nSteps,
               const OnDataValidated& onValidated,
               const OnDataValidationFailed& onValidationFailed,
               std::vector<shared_ptr<ValidationRequest>>& nextSteps) override;
 
-  virtual void
+  void
   checkPolicy(const Interest& interest,
               int nSteps,
               const OnInterestValidated& onValidated,
diff --git a/src/transport/tcp-transport.hpp b/src/transport/tcp-transport.hpp
index eb7878b..57004bc 100644
--- a/src/transport/tcp-transport.hpp
+++ b/src/transport/tcp-transport.hpp
@@ -49,25 +49,25 @@
   explicit
   TcpTransport(const std::string& host, const std::string& port = "6363");
 
-  ~TcpTransport();
+  ~TcpTransport() override;
 
-  virtual void
+  void
   connect(boost::asio::io_service& ioService,
           const ReceiveCallback& receiveCallback) override;
 
-  virtual void
+  void
   close() override;
 
-  virtual void
+  void
   pause() override;
 
-  virtual void
+  void
   resume() override;
 
-  virtual void
+  void
   send(const Block& wire) override;
 
-  virtual void
+  void
   send(const Block& header, const Block& payload) override;
 
   /** \brief Create transport with parameters defined in URI
diff --git a/src/transport/unix-transport.hpp b/src/transport/unix-transport.hpp
index 99d8688..ec73488 100644
--- a/src/transport/unix-transport.hpp
+++ b/src/transport/unix-transport.hpp
@@ -46,25 +46,25 @@
   explicit
   UnixTransport(const std::string& unixSocket);
 
-  ~UnixTransport();
+  ~UnixTransport() override;
 
-  virtual void
+  void
   connect(boost::asio::io_service& ioService,
           const ReceiveCallback& receiveCallback) override;
 
-  virtual void
+  void
   close() override;
 
-  virtual void
+  void
   pause() override;
 
-  virtual void
+  void
   resume() override;
 
-  virtual void
+  void
   send(const Block& wire) override;
 
-  virtual void
+  void
   send(const Block& header, const Block& payload) override;
 
   /** \brief Create transport with parameters defined in URI
diff --git a/src/util/dummy-client-face.cpp b/src/util/dummy-client-face.cpp
index 911d3bb..f6150b3 100644
--- a/src/util/dummy-client-face.cpp
+++ b/src/util/dummy-client-face.cpp
@@ -43,28 +43,28 @@
     }
   }
 
-  virtual void
+  void
   close() override
   {
   }
 
-  virtual void
+  void
   pause() override
   {
   }
 
-  virtual void
+  void
   resume() override
   {
   }
 
-  virtual void
+  void
   send(const Block& wire) override
   {
     onSendBlock(wire);
   }
 
-  virtual void
+  void
   send(const Block& header, const Block& payload) override
   {
     EncodingBuffer encoder(header.size() + payload.size(), header.size() + payload.size());
diff --git a/src/util/dummy-client-face.hpp b/src/util/dummy-client-face.hpp
index 7d661a7..41d843e 100644
--- a/src/util/dummy-client-face.hpp
+++ b/src/util/dummy-client-face.hpp
@@ -111,7 +111,7 @@
   void
   enableRegistrationReply();
 
-  virtual void
+  void
   doProcessEvents(const time::milliseconds& timeout, bool keepThread) override;
 
 public:
diff --git a/src/util/face-uri.cpp b/src/util/face-uri.cpp
index acdbc11..fea4e16 100644
--- a/src/util/face-uri.cpp
+++ b/src/util/face-uri.cpp
@@ -241,7 +241,7 @@
 class IpHostCanonizeProvider : public CanonizeProvider
 {
 public:
-  virtual std::set<std::string>
+  std::set<std::string>
   getSchemes() const override
   {
     std::set<std::string> schemes;
@@ -251,7 +251,7 @@
     return schemes;
   }
 
-  virtual bool
+  bool
   isCanonical(const FaceUri& faceUri) const override
   {
     if (faceUri.getPort().empty()) {
@@ -276,7 +276,7 @@
            this->checkAddress(addr).first;
   }
 
-  virtual void
+  void
   canonize(const FaceUri& faceUri,
            const FaceUri::CanonizeSuccessCallback& onSuccess,
            const FaceUri::CanonizeFailureCallback& onFailure,
@@ -402,7 +402,7 @@
   }
 
 protected:
-  virtual std::pair<bool, std::string>
+  std::pair<bool, std::string>
   checkAddress(const dns::IpAddress& ipAddress) const override
   {
     if (ipAddress.is_multicast()) {
@@ -415,7 +415,7 @@
 class EtherCanonizeProvider : public CanonizeProvider
 {
 public:
-  virtual std::set<std::string>
+  std::set<std::string>
   getSchemes() const override
   {
     std::set<std::string> schemes;
@@ -423,7 +423,7 @@
     return schemes;
   }
 
-  virtual bool
+  bool
   isCanonical(const FaceUri& faceUri) const override
   {
     if (!faceUri.getPort().empty()) {
@@ -437,7 +437,7 @@
     return addr.toString() == faceUri.getHost();
   }
 
-  virtual void
+  void
   canonize(const FaceUri& faceUri,
            const FaceUri::CanonizeSuccessCallback& onSuccess,
            const FaceUri::CanonizeFailureCallback& onFailure,
@@ -458,13 +458,13 @@
 class UdpDevCanonizeProvider : public CanonizeProvider
 {
 public:
-  virtual std::set<std::string>
+  std::set<std::string>
   getSchemes() const override
   {
     return {"udp4+dev", "udp6+dev"};
   }
 
-  virtual bool
+  bool
   isCanonical(const FaceUri& faceUri) const override
   {
     if (faceUri.getPort().empty()) {
@@ -476,7 +476,7 @@
     return true;
   }
 
-  virtual void
+  void
   canonize(const FaceUri& faceUri,
            const FaceUri::CanonizeSuccessCallback& onSuccess,
            const FaceUri::CanonizeFailureCallback& onFailure,
diff --git a/src/util/in-memory-storage-fifo.hpp b/src/util/in-memory-storage-fifo.hpp
index 3710284..2bc1880 100644
--- a/src/util/in-memory-storage-fifo.hpp
+++ b/src/util/in-memory-storage-fifo.hpp
@@ -47,18 +47,18 @@
   /** @brief Removes one Data packet from in-memory storage based on FIFO
    *  @return{ whether the Data was removed }
    */
-  virtual bool
+  bool
   evictItem() override;
 
   /** @brief Update the entry after a entry is successfully inserted, add it to the cleanupIndex
    */
-  virtual void
+  void
   afterInsert(InMemoryStorageEntry* entry) override;
 
   /** @brief Update the entry or other data structures before a entry is successfully erased,
    *  erase it from the cleanupIndex
    */
-  virtual void
+  void
   beforeErase(InMemoryStorageEntry* entry) override;
 
 private:
diff --git a/src/util/in-memory-storage-lfu.hpp b/src/util/in-memory-storage-lfu.hpp
index d866a29..8a21d4c 100644
--- a/src/util/in-memory-storage-lfu.hpp
+++ b/src/util/in-memory-storage-lfu.hpp
@@ -51,24 +51,24 @@
    *  frequently accessed Data packet
    *  @return{ whether the Data was removed }
    */
-  virtual bool
+  bool
   evictItem() override;
 
   /** @brief Update the entry when the entry is returned by the find() function,
    *  increment the frequency according to LFU
    */
-  virtual void
+  void
   afterAccess(InMemoryStorageEntry* entry) override;
 
   /** @brief Update the entry after a entry is successfully inserted, add it to the cleanupIndex
    */
-  virtual void
+  void
   afterInsert(InMemoryStorageEntry* entry) override;
 
   /** @brief Update the entry or other data structures before a entry is successfully erased,
    *  erase it from the cleanupIndex
    */
-  virtual void
+  void
   beforeErase(InMemoryStorageEntry* entry) override;
 
 private:
diff --git a/src/util/in-memory-storage-lru.hpp b/src/util/in-memory-storage-lru.hpp
index 4787398..48b79a8 100644
--- a/src/util/in-memory-storage-lru.hpp
+++ b/src/util/in-memory-storage-lru.hpp
@@ -49,24 +49,24 @@
    *  recently accessed Data packet
    *  @return{ whether the Data was removed }
    */
-  virtual bool
+  bool
   evictItem() override;
 
   /** @brief Update the entry when the entry is returned by the find() function,
    *  update the last used time according to LRU
    */
-  virtual void
+  void
   afterAccess(InMemoryStorageEntry* entry) override;
 
   /** @brief Update the entry after a entry is successfully inserted, add it to the cleanupIndex
    */
-  virtual void
+  void
   afterInsert(InMemoryStorageEntry* entry) override;
 
   /** @brief Update the entry or other data structures before a entry is successfully erased,
    *  erase it from the cleanupIndex
    */
-  virtual void
+  void
   beforeErase(InMemoryStorageEntry* entry) override;
 
 private:
diff --git a/src/util/in-memory-storage-persistent.hpp b/src/util/in-memory-storage-persistent.hpp
index 3265f52..7e1a977 100644
--- a/src/util/in-memory-storage-persistent.hpp
+++ b/src/util/in-memory-storage-persistent.hpp
@@ -45,7 +45,7 @@
    *
    *  @return false
    */
-  virtual bool
+  bool
   evictItem() override;
 };
 
diff --git a/src/util/indented-stream.hpp b/src/util/indented-stream.hpp
index 31e5839..32b60e8 100644
--- a/src/util/indented-stream.hpp
+++ b/src/util/indented-stream.hpp
@@ -56,7 +56,6 @@
 public:
   IndentedStream(std::ostream& os, const std::string& indent);
 
-  virtual
   ~IndentedStream() override;
 
 private:
@@ -66,7 +65,7 @@
   public:
     StreamBuf(std::ostream& os, const std::string& indent);
 
-    virtual int
+    int
     sync() override;
 
   private:
diff --git a/src/util/notification-subscriber.hpp b/src/util/notification-subscriber.hpp
index bc7345c..9b86fe1 100644
--- a/src/util/notification-subscriber.hpp
+++ b/src/util/notification-subscriber.hpp
@@ -190,13 +190,13 @@
   signal::Signal<NotificationSubscriber, Notification> onNotification;
 
 private:
-  virtual bool
+  bool
   hasSubscriber() const override
   {
     return !onNotification.isEmpty();
   }
 
-  virtual bool
+  bool
   decodeAndDeliver(const Data& data) override
   {
     Notification notification;
diff --git a/src/util/time-unit-test-clock.hpp b/src/util/time-unit-test-clock.hpp
index 253e1e7..f099b84 100644
--- a/src/util/time-unit-test-clock.hpp
+++ b/src/util/time-unit-test-clock.hpp
@@ -89,13 +89,13 @@
   setNow(const nanoseconds& timeSinceEpoch);
 
 public: // CustomClock<BaseClock>
-  virtual std::string
+  std::string
   getSince() const override;
 
-  virtual typename BaseClock::time_point
+  typename BaseClock::time_point
   getNow() const override;
 
-  virtual boost::posix_time::time_duration
+  boost::posix_time::time_duration
   toPosixDuration(const typename BaseClock::duration& duration) const override;
 
 private: