From b1f7a9d598c7ef76ed67729ac2763d2385f996f7 Mon Sep 17 00:00:00 2001
From: NAUD Maxence <maxence.naud@cea.fr>
Date: Wed, 22 Nov 2023 17:09:03 +0000
Subject: [PATCH] [Fix] missing 'template' keyword prior to dependent template
 name 'dims'

---
 include/aidge/operator/AvgPooling.hpp    | 4 ++--
 include/aidge/operator/Conv.hpp          | 4 ++--
 include/aidge/operator/ConvDepthWise.hpp | 4 ++--
 include/aidge/operator/MaxPooling.hpp    | 2 +-
 include/aidge/operator/Pad.hpp           | 2 +-
 include/aidge/operator/Slice.hpp         | 2 +-
 6 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/include/aidge/operator/AvgPooling.hpp b/include/aidge/operator/AvgPooling.hpp
index 603fa94ce..f0f9f6c54 100644
--- a/include/aidge/operator/AvgPooling.hpp
+++ b/include/aidge/operator/AvgPooling.hpp
@@ -79,7 +79,7 @@ public:
         }
         if (!(getInput(0)->empty())) {
             std::array<DimSize_t, DIM + 2> outputDims;
-            const std::array<DimSize_t, DIM + 2> inputDims(getInput(0)->dims<DIM+2>());
+            const std::array<DimSize_t, DIM + 2> inputDims(getInput(0)->template dims<DIM+2>());
             outputDims[0] = inputDims[0];
             outputDims[1] = inputDims[1];
 
@@ -104,7 +104,7 @@ public:
     //         std::vector<DimSize_t> inputIdxDims = outputIdxDims;
 
     //         for (DimIdx_t i = 0; i < (DIM+2); ++i) {
-    //             if (((outputDims[i] + outputIdxDims[i]) > mOutput->dims<DIM+2>()[i]) || (outputDims[i] == 0)) {
+    //             if (((outputDims[i] + outputIdxDims[i]) > mOutput->template dims<DIM+2>()[i]) || (outputDims[i] == 0)) {
     //                 AIDGE_THROW_OR_ABORT(std::runtime_error, "Given outputDim out of range for dimension %lu (%lu + %lu)", static_cast<std::size_t>(i), outputIdxDims[i], outputDims[i]);
     //             }
     //         }
diff --git a/include/aidge/operator/Conv.hpp b/include/aidge/operator/Conv.hpp
index 6c6e64db1..4f0fb1ea2 100644
--- a/include/aidge/operator/Conv.hpp
+++ b/include/aidge/operator/Conv.hpp
@@ -100,7 +100,7 @@ public:
         }
         if (associated) {
             std::array<DimSize_t, DIM + 2> outputDims{};
-            const std::array<DimSize_t, DIM + 2> inputDims(getInput(0)->dims<DIM+2>());
+            const std::array<DimSize_t, DIM + 2> inputDims(getInput(0)->template dims<DIM+2>());
 
             for (std::size_t dim = 0; dim < this->template getAttr<ConvAttr::KernelDims>().size() ; ++dim) {
                 const DimSize_t kernelExtent = this->template getAttr<ConvAttr::DilationDims>()[dim] *
@@ -130,7 +130,7 @@ public:
     //         inputIdxDims[1] = 0; // each channel is used so start with the first one
 
     //         for (DimIdx_t i = 0; i < (DIM+2); ++i) {
-    //             if (((outputDims[i] + outputIdxDims[i]) > mOutput->dims<DIM+2>()[i]) || (outputDims[i] == 0)) {
+    //             if (((outputDims[i] + outputIdxDims[i]) > mOutput->template dims<DIM+2>()[i]) || (outputDims[i] == 0)) {
     //                 AIDGE_THROW_OR_ABORT(std::runtime_error, "Given outputDim out of range for dimension %lu (%lu + %lu)", static_cast<std::size_t>(i), outputIdxDims[i], outputDims[i]);
     //             }
     //         }
diff --git a/include/aidge/operator/ConvDepthWise.hpp b/include/aidge/operator/ConvDepthWise.hpp
index e03456aaa..ca6401e0e 100644
--- a/include/aidge/operator/ConvDepthWise.hpp
+++ b/include/aidge/operator/ConvDepthWise.hpp
@@ -91,7 +91,7 @@ public:
         }
         if (associated) {
             std::array<DimSize_t, DIM + 2> outputDims = {};
-            const std::array<DimSize_t, DIM + 2> inputDims(getInput(0)->dims<DIM+2>());
+            const std::array<DimSize_t, DIM + 2> inputDims(getInput(0)->template dims<DIM+2>());
 
             for (std::size_t dim = 0; dim < this->template getAttr<ConvDepthWiseAttr::KernelDims>().size() ; ++dim) {
                 const DimSize_t kernelExtent = this->template getAttr<ConvDepthWiseAttr::DilationDims>()[dim] *
@@ -125,7 +125,7 @@ public:
     //         auto inputIdxDims = outputIdxDims; // batch idx is the same
 
     //         for (DimIdx_t i = 0; i < (DIM+2); ++i) {
-    //             if (((outputDims[i] + outputIdxDims[i]) > mOutput->dims<DIM+2>()[i]) || (outputDims[i] == 0)) {
+    //             if (((outputDims[i] + outputIdxDims[i]) > mOutput->template dims<DIM+2>()[i]) || (outputDims[i] == 0)) {
     //                 AIDGE_THROW_OR_ABORT(std::runtime_error, "Given outputDim out of range for dimension %lu (%lu + %lu)", static_cast<std::size_t>(i), outputIdxDims[i], outputDims[i]);
     //             }
     //         }
diff --git a/include/aidge/operator/MaxPooling.hpp b/include/aidge/operator/MaxPooling.hpp
index 45aec34c1..ad50a27a9 100644
--- a/include/aidge/operator/MaxPooling.hpp
+++ b/include/aidge/operator/MaxPooling.hpp
@@ -82,7 +82,7 @@ public:
         }
         if (!(getInput(0)->empty())) {
             std::array<DimSize_t, DIM + 2> outputDims{};
-            const std::array<DimSize_t, DIM + 2> inputDims(getInput(0)->dims<DIM+2>());
+            const std::array<DimSize_t, DIM + 2> inputDims(getInput(0)->template dims<DIM+2>());
 
             std::function<float(float)> roundingFunction;
             if (this->template getAttr<MaxPoolingAttr::CeilMode>()) {
diff --git a/include/aidge/operator/Pad.hpp b/include/aidge/operator/Pad.hpp
index 3fa6fa097..279b8b3d2 100644
--- a/include/aidge/operator/Pad.hpp
+++ b/include/aidge/operator/Pad.hpp
@@ -84,7 +84,7 @@ public:
         }
         if (associated) {
             std::array<DimSize_t, DIM + 2> outputDims{};
-            const std::array<DimSize_t, DIM + 2> inputDims = getInput(0)->dims<DIM+2>();
+            const std::array<DimSize_t, DIM + 2> inputDims = getInput(0)->template dims<DIM+2>();
 
             for (std::size_t dim = 0; dim < DIM; ++dim) {
                 outputDims[dim+2] = this->template getAttr<PadAttr::BeginEndBorders>()[2*dim]
diff --git a/include/aidge/operator/Slice.hpp b/include/aidge/operator/Slice.hpp
index f12afafab..7bdbd8099 100644
--- a/include/aidge/operator/Slice.hpp
+++ b/include/aidge/operator/Slice.hpp
@@ -75,7 +75,7 @@ public:
             AIDGE_THROW_OR_ABORT(std::runtime_error, "Error: input and slice dimensions are not the same size.");
         }
         std::array<DimSize_t, DIM> outputDims;
-        const std::array<DimSize_t, DIM> inputDims = getInput(0)->dims<DIM>();
+        const std::array<DimSize_t, DIM> inputDims = getInput(0)->template dims<DIM>();
 
         // Check that the sliced Tensor is actually part of the input Tensor
         // For a 5*5 tensor ('x') and a 3*3 slice kernel ('o'):
-- 
GitLab