The 2011 version of the language in which these constructs are defined introduced a variadic type of them.
The acronym SFINAE is used to refer to a situation in which an invalid substitution of parameters of these constructs does not result in an error. A 2003 result by Veldhuizen presented a sketch of a proof that these constructs were Turing-complete, cautioning that a formal proof was unlikely because the instantiation of these constructs lacked a formal semantics. The 2011 version of the language in which these constructs are defined introduced a variadic type of them. In 1994, Unruh used these constructs to perform a computation which output primes (*) as compiler errors, an early example of these objects' namesake "metaprogramming" application. Iterators, algorithms, and containers such as vectors are part of a standard library of classes parametrized in terms of these constructs, which are heavily used by the Boost libraries. For 10 points, identify these constructs that are parametrizable by type, enabling generic programming in a language invented by Bjarne Stroustrup.
The acronym SFINAE is used to refer to a situation in which an invalid substitution of parameters of these constructs does not result in an error.
C++ templates [prompt on partial answers]