diff --git a/include/aidge/backend/cpu/data/TensorImpl.hpp b/include/aidge/backend/cpu/data/TensorImpl.hpp
index d39aa4505e39fc07a9a2882981f7b619363ac5b0..012ff5af1c15e73fe76114a23ec62f9ef023bce2 100644
--- a/include/aidge/backend/cpu/data/TensorImpl.hpp
+++ b/include/aidge/backend/cpu/data/TensorImpl.hpp
@@ -48,7 +48,7 @@ class TensorImpl_cpu : public TensorImpl {
     };
 
    void* getRaw(std::size_t idx){
-       return rawPtr() + (idx * sizeof(T));
+       return  static_cast<void*>(static_cast<T *>(rawPtr()) + idx);
    };
 
     virtual ~TensorImpl_cpu() = default;
diff --git a/src/operator/AddImpl.cpp b/src/operator/AddImpl.cpp
index d3da42185237a59146af17199e34a00dbebd6d96..be7923339308073c26b60ee0349a44037769765a 100644
--- a/src/operator/AddImpl.cpp
+++ b/src/operator/AddImpl.cpp
@@ -99,6 +99,7 @@ Aidge::NbElts_t Aidge::AddImpl_cpu<2>::getNbRequiredProtected(const Aidge::IOInd
 Aidge::NbElts_t Aidge::AddImpl_cpu<2>::getRequiredMemory(const Aidge::IOIndex_t outputIdx, const std::vector<Aidge::DimSize_t>& /*inputsSize*/) const {
     // Requires the whole tensors, regardless of available data on inputs
     assert(outputIdx == 0 && "operator has only one output");
+    (void) outputIdx; // avoid unused warning
 
     const auto& outputDims = std::static_pointer_cast<Tensor>(mOp.getOutput(0))->dims();
     return std::accumulate(outputDims.begin(), outputDims.end(),
@@ -167,6 +168,7 @@ Aidge::NbElts_t Aidge::AddImpl_cpu<3>::getNbRequiredProtected(const Aidge::IOInd
 Aidge::NbElts_t Aidge::AddImpl_cpu<3>::getRequiredMemory(const Aidge::IOIndex_t outputIdx, const std::vector<Aidge::DimSize_t>& /*inputsSize*/) const {
     // Requires the whole tensors, regardless of available data on inputs
     assert(outputIdx == 0 && "operator has only one output");
+    (void) outputIdx; // avoid unused warning
 
     const auto& outputDims = std::static_pointer_cast<Tensor>(mOp.getOutput(0))->dims();
     return std::accumulate(outputDims.begin(), outputDims.end(),
diff --git a/unit_tests/Test_TensorImpl.cpp b/unit_tests/Test_TensorImpl.cpp
index d28505f7b6f2961e581cadee778bdb16364353de..6c75c4dc19ff1b646308858ad262441d43390122 100644
--- a/unit_tests/Test_TensorImpl.cpp
+++ b/unit_tests/Test_TensorImpl.cpp
@@ -41,12 +41,12 @@ TEST_CASE("Tensor creation") {
     }
 
     SECTION("get function") {
-      REQUIRE(x.get<int>(std::array<std::size_t, 3>({0, 0, 0})) == 1);
-      REQUIRE(x.get<int>(std::array<std::size_t, 3>({0, 0, 1})) == 2);
-      REQUIRE(x.get<int>(std::array<std::size_t, 3>({0, 1, 1})) == 4);
-      REQUIRE(x.get<int>(std::array<std::size_t, 3>({1, 1, 0})) == 7);
-      x.get<int>(std::array<std::size_t, 3>({1, 1, 1})) = 36;
-      REQUIRE(x.get<int>(std::array<std::size_t, 3>({1, 1, 1})) == 36);
+      REQUIRE(x.get<int>({0, 0, 0}) == 1);
+      REQUIRE(x.get<int>({0, 0, 1}) == 2);
+      REQUIRE(x.get<int>({0, 1, 1}) == 4);
+      REQUIRE(x.get<int>({1, 1, 0}) == 7);
+      x.get<int>({1, 1, 1}) = 36;
+      REQUIRE(x.get<int>({1, 1, 1}) == 36);
     }
 
     SECTION("Pretty printing for debug") { REQUIRE_NOTHROW(x.print()); }