使用 std::min "no matching function for call to ‘min(<brace-enclosed initializer list>)’"时出错



按照 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 标准一起使用。我可能做错了什么?

正如@BoBTFish所建议的:

为了使用template <class T> T min (initializer_list<T> il)需要包括这里提到的<algorithm>

最新更新