diff --git a/include/aidge/operator/Pad.hpp b/include/aidge/operator/Pad.hpp
index 683ca744760dc7edb7d2e9e212fffb3e85490b2d..deae0e6b8c5a91e5c10e7655549a4e46ac90eb0b 100644
--- a/include/aidge/operator/Pad.hpp
+++ b/include/aidge/operator/Pad.hpp
@@ -84,7 +84,7 @@ public:
         return std::make_shared<Pad_Op<DIM>>(*this);
     }
 
-    constexpr void associateInput(const IOIndex_t inputIdx, std::shared_ptr<Data> data) override final {
+    void associateInput(const IOIndex_t inputIdx, std::shared_ptr<Data> data) override final {
         assert(inputIdx < 1 && "operators supports only 3 inputs");
         (void) inputIdx; // avoid unused warning
         assert(strcmp(data->type(), Tensor::Type) == 0 && "input data must be of Tensor type");
@@ -92,7 +92,7 @@ public:
         mInput = std::dynamic_pointer_cast<Tensor>(data);
     }
 
-    constexpr void computeOutputDims() override final {
+    void computeOutputDims() override final {
         if (!mInput->empty()) {
             std::array<DimSize_t, DIM + 2> outputDims = {};
 
@@ -142,7 +142,7 @@ public:
     }
 
 
-    void setBackend(const std::string &name) {
+    void setBackend(const std::string &name) override {
         mImpl = Registrar<Pad_Op<DIM>>::create(name)(*this);
         mOutput->setBackend(name);
 
@@ -150,7 +150,7 @@ public:
         mInput->setBackend(name);
     }
 
-    void setDatatype(const DataType &datatype) {
+    void setDatatype(const DataType &datatype) override {
         mOutput->setDatatype(datatype);
 
         // FIXME: temporary workaround