Преимущества использования boost :: mpl :: bool_ вместо const bool

Меня смущают преимущества использования типов

bool_<true> 

и

bool_<false> 

по сравнению с простым использованием const bools в контексте метапрограммирования шаблонов.

Библиотека boost :: mpl явно предпочитает первый подход и определяет вспомогательные функции, такие как and_, or_, для помощи в управлении такими bool_. Условные метафункции, такие как if_, «принимают» bool_ в качестве первого (шаблона) аргумента, но за кулисами «вызывают» метафункцию if_c, которая ожидает (const) bool в качестве первого (шаблона) аргумента.

Каковы аргументы в пользу этого решения?

Заранее благодарим вас за помощь!

9
задан StephQ 21 October 2010 в 11:42
поделиться