January 2018
Intermediate to advanced
374 pages
9h 53m
English
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> ...