Linear range usage examples

Now that we have the foundation functions, the iterator and its corresponding type_traits, the range class, and the make_linear_range convenience function, we can use them to iterate a range of numbers as simple as this:

for(auto t: make_linear_range(0.0, 1.0, 4)) { std::cout << t << ", "; }// Output: 0, 0.33, 0.66, 1.0,

What happens here is that the make_linear_range function returns a LinearRange class. When a range-based for-loop is invoked, the compiler internally generates code that looks similar to this:

auto r = make_linear_range(0.0, 1.0, 4); // r is a LinearRange<double>auto first = r.begin(); // first is a LinearRangeIterator<double>auto last = r.end(); // last is a LinearRangeIterator<double>for(auto ...

Get C++ High Performance now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.