diff --git a/tests/unit/test_range.cpp b/tests/unit/test_range.cpp
index 09e22c43ebd6d961b323065999951d267df611f2..956c85d643b66551499ae12e7626af678e3786cf 100644
--- a/tests/unit/test_range.cpp
+++ b/tests/unit/test_range.cpp
@@ -536,6 +536,15 @@ TEST(range, keys) {
     }
 }
 
+template <typename C>
+void emplace_back_sequence(C&& c) {}
+
+template <typename C, typename T, typename... Ts>
+void emplace_back_sequence(C&& c, T&& t, Ts&&... ts) {
+    c.emplace_back(std::forward<T>(t));
+    emplace_back_sequence(std::forward<C>(c), std::forward<Ts>(ts)...);
+}
+
 TEST(range, is_sorted_by) {
     // Use `nomove` wrapper to count potential copies: implementation aims to
     // minimize copies of projection return value, and invocations of the projection function.
@@ -555,7 +564,9 @@ TEST(range, is_sorted_by) {
 
     // 1. sorted non-empty vector
 
-    std::vector<nomove<int>> v_sorted = {10, 13, 13, 15, 16};
+    std::vector<nomove<int>> v_sorted;
+    emplace_back_sequence(v_sorted, 10, 13, 13, 15, 16);
+
     int n = v_sorted.size();
 
     reset();
@@ -579,7 +590,8 @@ TEST(range, is_sorted_by) {
 
     // 3. one-element vector
 
-    std::vector<nomove<int>> v_single = {-44};
+    std::vector<nomove<int>> v_single;
+    emplace_back_sequence(v_single, -44);
 
     reset();
     EXPECT_TRUE(util::is_sorted_by(v_single, id_copy, cmp_nomove));
@@ -588,21 +600,24 @@ TEST(range, is_sorted_by) {
 
     // 4. unsorted vectors at second, third, fourth elements.
 
-    std::vector<nomove<int>> v_unsorted_2 = {2, 1, 3, 4};
+    std::vector<nomove<int>> v_unsorted_2;
+    emplace_back_sequence(v_unsorted_2, 2, 1, 3, 4);
 
     reset();
     EXPECT_FALSE(util::is_sorted_by(v_unsorted_2, id_copy, cmp_nomove));
     EXPECT_EQ(2, copies());
     EXPECT_EQ(2, invocations);
 
-    std::vector<nomove<int>> v_unsorted_3 = {2, 3, 1, 4};
+    std::vector<nomove<int>> v_unsorted_3;
+    emplace_back_sequence(v_unsorted_3, 2, 3, 1, 4);
 
     reset();
     EXPECT_FALSE(util::is_sorted_by(v_unsorted_3, id_copy, cmp_nomove));
     EXPECT_EQ(3, copies());
     EXPECT_EQ(3, invocations);
 
-    std::vector<nomove<int>> v_unsorted_4 = {2, 3, 4, 1};
+    std::vector<nomove<int>> v_unsorted_4;
+    emplace_back_sequence(v_unsorted_4, 2, 3, 4, 1);
 
     reset();
     EXPECT_FALSE(util::is_sorted_by(v_unsorted_4, id_copy, cmp_nomove));