【发布时间】:2014-08-26 22:33:03
【问题描述】:
我有一个使用typedef unsigned int value_t; 定义的类型和一个函数
value_t find_minimal_value(...) {
...
if(...) return numeric_limits<value_t>::max;
...
}
编译器拒绝编译它,说:从‘int (*)()noexcept (true)’到‘value_t {aka int}’的无效转换。
这是什么意思?查看 numeric_limits 类,min() 函数应返回通过模板类型名传递给它的类型的变量,因此在这种情况下为value_t。那么为什么代码不能编译呢?
【问题讨论】:
-
std::numeric_limits<T>::max()是一个函数。 -
@Nemo 这太荒谬了,谢谢。
标签: c++ templates type-conversion return-type numeric-limits