template<class keyword>
tk::grm::readcmd<keyword, typename if_<false, typename keyword::info::alias>::type> struct

Read command line 'keyword' in either verbose or alias form.

This version is used if an alias is defined for the given keyword, in which case either the verbose or the alias form of the keyword is matched, i.e., either '–keyword' or '-a', where 'a' is the single-character alias for the longer 'keyword'. This is a partial specialization of the simpler verbose-only readcmd, which attempts to find the typedef 'alias' in keyword::info. If it finds it, it uses this specialization. If it fails, it is SFINAE, and falls back to the verbose-only definition. Credit goes to David Rodriguez at stackoverflow.com. This allows not having to change this client-code to the keywords definitions: a keyword either defines an alias or not, and the grammar here will do the right thing: if there is an alias, it will build the grammar that optionally parses for it.