使用模板元编程技术,使用std::enable_if模板实现条件返回类型。
示例代码:
#include
#include
using namespace std;
template
typename std::enable_if::value, T>::type
foo(T t)
{
return t * 2;
}
template
typename std::enable_if::value, T>::type
foo(T t)
{
return t * 2.5;
}
int main()
{
int i = 2;
float f = 3.2;
cout << foo(i) << endl; // Output: 4
cout << foo(f) << endl; // Output: 8
return 0;
}
在此示例中,使用enable_if模板实现条件返回类型。当T类型为整数类型时,会返回T类型的值乘以2,当T类型为浮点数类型时,会返回T类型的值乘以2.5。在main函数中,分别调用了foo函数,并输出了返回值。这里,返回值的类型是根据模板参数T的类型来确定的。