【发布时间】:2013-08-30 21:21:46
【问题描述】:
如果我有一个类型,T,看起来像Foo<mpl::_1>,我可以通过mpl::apply<T, int>::type 得到Foo<int>。
但如果T 是一个完整的类型,比如Foo<int>,那么mpl::apply<T, int>::type 将无法编译。
我想编写一个元函数,如果可能,它将应用一个类型,否则返回该类型。所以像:
template <typename Partial, typename T>
struct maybe_apply
: eval_if_c<??????,
mpl::apply<Partial, T>,
mpl::identity<Partial>>
{ };
我可以在 ???s 中添加什么,这样才能达到我想要的效果?
【问题讨论】: