metaprogramming/conditional/cond-3.cc - Same - syntactically embellished. | Lecture 6 - slide 34 : 40 Program 2 |
// Introducing a template alias (4ed, page 694) - a slight improvement. // Conditional example - adapted from www.cplusplus.com. #include <iostream> #include <type_traits> // Conditional is a syntactical embellishment of the application of underlying conditional template: template<bool B, typename T, typename F> using Conditional = typename std::conditional<B, T, F>::type; int main() { using namespace std; using A = Conditional<true,int,float>; // select int using B = Conditional<false,int,float>; // select float using C = Conditional<is_integral<A>::value,long,int>; // select long - because type A is int using D = Conditional<is_integral<B>::value,long,int>; // select int - because B is float // ... }