使用std :: min&#34时出错;没有匹配函数来调用'min(<brace-enclosed initializer =“”list =“”>)'&#34;

时间:2017-06-15 08:01:34

标签: c++ c++11 std min

关注https://stackoverflow.com/a/9424211/3368959我试图比较三个数字:

#include <iostream>

int main() {

    std::cout << std::min({2,5,1}) << std::endl;
    return 0;
}

但是编译器给了我错误:

error: no matching function for call to ‘min(<brace-enclosed initializer list>)’

但是,使用

时,代码编译得很好
std::min(std::min(2,5),1)

但第一种方法应该适用于c ++ 11标准。我能做错什么?

1 个答案:

答案 0 :(得分:2)

作为@BoBTFish suggested

为了使用template <class T> T min (initializer_list<T> il),我需要提及<algorithm> here