编写元函数

时间:2011-03-04 11:16:03

标签: c++ templates function metaprogramming composition

是否有一个成熟的组合(“链接”)元函数的习语?这是我目前的解决方案:

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 个答案:

答案 0 :(得分:3)

您可以查看boost :: mpl库:

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

我并不是说mpl比你拥有的更好。只是它看起来像是类似的领域,它可能会让你感兴趣。