Conditional metafunction returning the first typename if true, the second if false. A second conditional (if_c) metafunction returns the first constant if true, the second if false; namespace framework { namespace meta { template struct if_; template struct if_ { typedef T0 value; }; template struct if_ { typedef T1 value; }; template struct if_c; template struct if_c { static T value; }; template struct if_c { static T value; }; template T if_c::value = C0; template T if_c::value = C1; } // namespace meta } // namespace framework For an example, see TemplateMetafunctionHasFunction. ---- TemplateMetaprogrammingTechniques TemplateMetafunctionIdentity TemplateMetafunctionHasFunction CategoryCppTemplates