【发布时间】:2014-06-24 21:41:28
【问题描述】:
感谢 C++14,我们很快就能减少冗长的尾随返回类型;例如来自 David Abrahams 2011 post 的通用 min 示例:
template <typename T, typename U>
auto min(T x, U y)
-> typename std::remove_reference< decltype(x < y ? x : y) >::type
{ return x < y ? x : y; }
C++14下返回类型可以省略,min可以写成:
template <typename T, typename U>
auto min(T x, U y)
{ return x < y ? x : y; }
这是一个简单的例子,但是返回类型推导对于泛型代码非常有用,并且可以避免大量复制。我的问题是,对于这样的功能,我们如何整合 SFINAE 技术?例如,如何使用std::enable_if 来限制我们的min 函数返回整数类型?
【问题讨论】:
标签: c++ templates sfinae c++14