Существует ли установленная идиома для составления ("сцепления") мета-функций? Это мое текущее решение:
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> {};
Есть ли лучший способ сделать это?