Chapter 5, Type Traits and Conditional Compilation
Question 1
What are type traits?
Answer
Type traits are small class templates that enable us to either query properties of types or perform transformations of types.
Question 2
What is SFINAE?
Answer
SFINAE is an acronym for Substitution Failure Is Not An Error. This is a rule for template substitution and works as follows: when the compiler encounters the use of a function template, it substitutes the arguments in order to instantiate the template; if an error occurs at this point, it is not regarded as an ill-formed code, only as a deduction failure. As a result, the function is removed from the overload set instead of causing an error. Therefore, an error only occurs if there is no match in the overload set for a particular function call.
Question 3
What is constexpr if
?
Answer
constexpr if
is a compile-time version of the if
statement. The syntax for it is if
constexpr(condition)
. It’s...