Составление мета-функций - PullRequest
2 голосов
/ 04 марта 2011

Существует ли установленная идиома для составления ("сцепления") мета-функций? Это мое текущее решение:

template
<
    template <typename> class First,
    template <typename> class Then,
    typename T
>
struct compose : Then<typename First<T>::type> {};

А вот пример использования:

template <typename T>
struct remove_cv : compose<remove_const, remove_volatile, T> {};

Есть ли лучший способ сделать это?

1 Ответ

3 голосов
/ 04 марта 2011

Вы можете проверить библиотеку boost :: mpl:

http://www.boost.org/doc/libs/1_46_0/libs/mpl/doc/refmanual/composition-and-argument-binding.html

Я не утверждаю, что mpl лучше, чем у вас. Просто он похож на подобную территорию и может вас заинтересовать.

...