diff --git a/include/aidge/backend/cpu/operator/SliceImpl_forward_kernels.hpp b/include/aidge/backend/cpu/operator/SliceImpl_forward_kernels.hpp
index 01e2735af9801c4fe07d8db61e2f01d2d7caeb93..bbf4ccbae77089ca75dfee34f5bc5b0dd7d3697d 100644
--- a/include/aidge/backend/cpu/operator/SliceImpl_forward_kernels.hpp
+++ b/include/aidge/backend/cpu/operator/SliceImpl_forward_kernels.hpp
@@ -13,6 +13,8 @@
 #define AIDGE_CPU_OPERATOR_SLICEIMPL_FORWARD_KERNEL_H_
 
 #include "aidge/utils/Registrar.hpp"
+#include "aidge/operator/Slice.hpp"
+#include "aidge/backend/cpu/operator/SliceImpl.hpp"
 #include <array>
 #include <cstddef>
 
@@ -20,7 +22,7 @@
 
 namespace Aidge {
 template <class I, std::size_t DIM>
-void SliceImpl_cpu_forward_kernel(const Slice_Op::Attrs& attrs,
+void SliceImpl_cpu_forward_kernel(const typename Slice_Op<DIM>::Attrs& attrs,
                                      const std::array<std::size_t, DIM> inputDims,
                                      const void* input_,
                                      void* output_) {
@@ -48,8 +50,9 @@ void SliceImpl_cpu_forward_kernel(const Slice_Op::Attrs& attrs,
 
 	std::size_t j = 0;
 	std::size_t i = 0;
-	for (; j < prodSlicedDims[0]; ++j) {
+	for (; j < prodSlicedDims[0];) {
 		output[j] = input[i++];
+                ++j;
 		for (std::size_t idx = DIM - 1; idx > 0; --idx) {
 				i += j % prodSlicedDims[idx] == 0 ? substractedDims[idx]*prodInputDims[idx+1] : 0;
 		}