I am confused about the advantages of using the the
bool_<true>
and
bool_<false>
types against simply using const bools in the context of template metaprogramming.
The boost::mpl library clearly prefers the first approach, and defines helper functions like and_, or_ to help manage such bool_. Conditional metafunctions like if_ "take" a bool_ as first (template) argument, but behind the scenes "call" a if_c metafunction wich expects a (const) bool as first (template) argument.
What are the arguments behind this decision?
Thank you in advance for your help!