January 2020
Intermediate to advanced
454 pages
11h 25m
English
Class template type deduction is a much-needed feature in C++17 as it helps to reduce both the redundancy and verbosity of our C++. There are situations where, however, the compiler will deduce the wrong type—an issue that could be addressed if we didn't rely on type deduction. To better understand this type of issue, let's look at the following example:
template<typename T>class the_answer{public: the_answer(T t) { show_type(t); }};
In the preceding example, we have created a simple class template whose constructor takes a type T and uses a show_type() function to output whatever type it is given. Now suppose that we wish to use this class to instantiate a version that takes an unsigned integer. There are two ways to do this: ...