diff --git a/unit_tests/operator/Test_Squeeze_Op.cpp b/unit_tests/operator/Test_Squeeze_Op.cpp
index 61a06aa5000632b3f2b65ef6d4d91c1f85bbd46c..471a1dcd1e45384b2c65da75ddee9d3ec039dc34 100644
--- a/unit_tests/operator/Test_Squeeze_Op.cpp
+++ b/unit_tests/operator/Test_Squeeze_Op.cpp
@@ -388,15 +388,14 @@ TEST_CASE("[core/operator] Squeeze(forward)", "[Squeeze][forward]") {
       int i = 0;
       std::vector<DimSize_t> dims_out;
       dims_out.reserve(dims_in.size());
-      std::copy_if(dims_in.begin(), dims_in.end(), std::back_inserter(dims_out),
-                   [&dims_to_squeeze, &i](DimSize_t dim) {
-                     bool ok = dim != 1 ||
-                               !std::binary_search(dims_to_squeeze.begin(),
-                                                   dims_to_squeeze.end(), i);
-                     i++; // incrementing counter since C++ has not enumerate
-                          // fctn (until C++23)
-                     return ok;
-                   });
+      for (DimIdx_t i = 0; i < dims_in.size(); ++i) {
+        if (dims_in[i] == 1 &&
+            std::find(dims_to_squeeze.begin(), dims_to_squeeze.end(), i) !=
+                dims_to_squeeze.end()) {
+          continue;
+        }
+        dims_out.push_back(dims_in[i]);
+      }
       CHECK(op->forwardDims());
       CHECK(op->getOutput(0)->dims() == dims_out);