在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标准下工作,我能做错什么呢?
2条答案
按热度按时间siv3szwd1#
@BoBTFish建议:
为了使用
template <class T> T min (initializer_list<T> il)
,需要包括<algorithm>
,如提到的here。798qvoo82#
在我电脑上能用。
你可以添加这行
std::cout<<__cplusplus<<endl;
,并检查输出。