C++ 我说不出“为什么”有什么问题;标准:最小值;函数CPP

C++ 我说不出“为什么”有什么问题;标准:最小值;函数CPP,c++,C++,以下是代码示例: std::min(1, 2, [](int x, int y) {std::cout << x << ' ' << y << std::endl; return true;}); std::min(1,2,[](整数x,整数y) {std::cout这里的问题是,该算法要求比较函数满足严格弱序的要求。这意味着,例如,如果comp(a,b)为真,则comp(b,a)为假。但是,在调用该算法时,comp(x,y)其中,co

以下是代码示例:

std::min(1, 2, [](int x, int y)
    {std::cout << x  << ' ' << y << std::endl; return true;});
std::min(1,2,[](整数x,整数y)

{std::cout这里的问题是,该算法要求比较函数满足严格弱序的要求。这意味着,例如,如果
comp(a,b)
为真,则
comp(b,a)
为假。但是,在调用该算法时,comp(x,y)其中,comp是lambda表达式,且comp(y,x)这也是真的。似乎在调试模式下,编译器会打开这样一个比较函数的检查。

检查我的神秘黑框以获得答案…不,…什么都没有…尝试巫毒魔法…不。请发布一个@WhiZTiM不好笑..这就是我不知道该怎么做的原因..所以让我们停止玩吧虽然你的代码是正确的,但是这个问题是用你提供的代码来解决的。我建议发布一个完整的C++程序,我们可以复制粘贴,并给你错误。我不能复制。也可以说编译器。如果人们说什么编译器,可能会很方便。他们正在使用。这对我来说在GCC 5.1.0中是不可复制的。@FredLarson:你为什么怀疑它?@FredLarson:你假设这是一个编译错误,而不是运行时错误。一些标准库实现实际上在调试模式下做了这类检查。这里的主要问题当然是OP没有指定。@FredLarson它可以这是一个运行时检查。经过仔细查看,它似乎是一个Windows运行时错误消息。我已得到更正。类似问题:@FredLarson这是在检查严格弱顺序时,库在调试模式下生成的错误消息。