19 static int square(
const int val)
24 static std::string concat(
const std::string val)
29 TEST_CASE(
"TransformIteratorTest")
31 struct WrapperTestClass
35 return { m_Vec.begin(), &square };
40 return { m_Vec.end(), &square };
43 const std::vector<int> m_Vec{1, 2, 3, 4, 5};
46 struct WrapperStringClass
50 return { m_Vec.begin(), &concat };
55 return { m_Vec.end(), &concat };
58 const std::vector<std::string> m_Vec{
"a",
"b",
"c"};
61 WrapperStringClass wrapperStringClass;
62 WrapperTestClass wrapperTestClass;
65 for(
auto val : wrapperStringClass)
72 for(
auto val : wrapperTestClass)
74 CHECK(val == square(i));
80 for(
auto val : wrapperTestClass.m_Vec)
86 std::vector<int> originalVec{1, 2, 3, 4, 5};
91 std::vector<int> transformedVec(transformBegin, transformEnd);
94 for(
auto val : transformedVec)
96 CHECK(val == square(i));
constexpr TransformIterator< Function, Iterator > MakeTransformIterator(Iterator i, Function f)