#include #include #include #include using namespace boost::adaptors; using namespace std; int addOne(int b) { return b + 1; } int main(int, char**) { vector nums{ 1, 2, 3 }; auto result1 = nums | transformed(addOne) | type_erased(); auto result2 = nums | transformed(addOne); auto result3 = nums | type_erased(); for (auto n : result1) cout << n << " "; cout << endl; for (auto n : result2) cout << n << " "; cout << endl; for (auto n : result3) cout << n << " "; cout << endl; }