The make_linear_range convenience function

In order to avoid explicitly specifying the floating point type when using the LinearRange template, we do as the STL does with make_pair(): we create a convenience function called make_linear_range() which returns a LinearRange object where its type has been deduced from the arguments.

Here is how we implement the make_linear_range() function:

template <typename T>auto make_linear_range(T start, T stop, size_t n) {  return LinearRange<T>{ start, stop, n };}

Without the make_linear_range() function, we need to explicitly specify the contained value type to create a range:

auto r = LinearRange<double>{0.0, 1.0, 4};// r evaluates to {0.0, 0.33, 0.66, 1.0}

Using the make_range_function we the <double> ...

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.