diff --git a/aidge_export_cpp/kernels/pooling.hpp b/aidge_export_cpp/kernels/pooling.hpp
index 0829cc4b7f66f31c56ee403b9de99aedcd57e673..85fece507429f08159678a0212fb218b7aa44c4d 100644
--- a/aidge_export_cpp/kernels/pooling.hpp
+++ b/aidge_export_cpp/kernels/pooling.hpp
@@ -116,11 +116,9 @@ void pooling_forward(
                         }
                     }
 
-                    if constexpr (std::is_integral<Output_T>::value) {
-                        outputs[oOffset + output] = (Output_T) std::round((float)sum / (POOL_HEIGHT * POOL_WIDTH));
-                    } else {
-                        outputs[oOffset + output] = (Output_T) (sum / (POOL_HEIGHT * POOL_WIDTH));
-                    }
+                    outputs[oOffset + output] = static_cast<Output_T>(
+                        std::is_integral<Output_T>::value ? std::round((float)sum / (POOL_HEIGHT * POOL_WIDTH)) : sum / (POOL_HEIGHT * POOL_WIDTH)
+                    );
 
                 }
                 else {