c++ 使用std::min时出错“没有匹配的函数用于调用'min(〈花括号括起的初始值设定项列表>)'”

mrphzbgm  于 2023-03-25  发布在  其他
关注(0)|答案(2)|浏览(183)

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标准下工作,我能做错什么呢?

siv3szwd

siv3szwd1#

@BoBTFish建议:
为了使用template <class T> T min (initializer_list<T> il),需要包括<algorithm>,如提到的here

798qvoo8

798qvoo82#

在我电脑上能用。
你可以添加这行std::cout<<__cplusplus<<endl;,并检查输出。

相关问题