【发布时间】:2010-12-25 16:19:08
【问题描述】:
假设我们有一个这样的函数
template <class T, class T2>
T getMin(T a, T2 b) {
if(a < b)
return a;
return b;
}
如果我们这样调用函数
int a, b;
long c;
a = getMin(b, c);
如果 c 是
是否可以使返回类型灵活,使其返回 int、long 或任何其他被 "
编辑:
函数中涉及的类型可以是从简单类型到有时无法进行类型转换的复杂类的任何类型。
【问题讨论】:
-
@Prasoon:我希望你取消删除你的答案,因为它是正确的。即使
(a > b)? a: b不能在编译时求值,它仍然有一个类型。使用auto x = (a > b)? a: b;声明局部变量是有效的,因此使用decltype也是如此。