Type metafunction used by class templates with default template parameters that might be lengthy in type / name. Shortens symbol names for better debug output and compile times. More...
Public Types | |
using | type = Passed |
Type metafunction used by class templates with default template parameters that might be lengthy in type / name. Shortens symbol names for better debug output and compile times.
Passed | parameter passed to the user's class template |
Default | the type which should be used if Passed is use_default |
usage: template<typename T, typename Q = use_default) class foo { // use int as default type typedef typename select_parameter<Q, really_long_type>::type Q_t; ... };
foo<float> // Q_t = really_long_type foo<<float, int> // Q_t = int
primary template reflects Passed (Default != use_default).