C++ 为什么';t C++;标准库包括std::min、std::max的非常量版本?
我模模糊糊地记得我在某处看到过关于这个问题的讨论,但我现在找不到;“non-const min max c++”和类似的变体没有给出相关的结果 <>为什么C++标准库不包括以下的非const过载:<代码> STD::MIN < /> >(类似于<代码> STD:MAX)?< /P>C++ 为什么';t C++;标准库包括std::min、std::max的非常量版本?,c++,C++,我模模糊糊地记得我在某处看到过关于这个问题的讨论,但我现在找不到;“non-const min max c++”和类似的变体没有给出相关的结果 为什么C++标准库不包括以下的非const过载: STD::MIN < /> >(类似于 STD:MAX)?< /P> 这种过载会导致什么问题?这是霍华德·E·希南在年提出的,根据他的说法,被拒绝了 在同一次讨论中,Howard提到了这些被拒绝的原因: 当时人们认为实施过程过于复杂。虽然 我还没有试过,几乎可以肯定的是,这可以用更简单的方法来完成 今天的
这种过载会导致什么问题?这是霍华德·E·希南在年提出的,根据他的说法,被拒绝了 在同一次讨论中,Howard提到了这些被拒绝的原因: 当时人们认为实施过程过于复杂。虽然 我还没有试过,几乎可以肯定的是,这可以用更简单的方法来完成 今天的语言/图书馆。至少是所谓的“推广” 在今天的实现中称为“std::common_type” 部分原因是我试图解决几个问题 同时:
int i = 1; std::min(i, 0);
如果您对解决讨论中提到的问题感兴趣,并编写一个方案+示例实现,那么这最终可能会成为标准。如果两者的值相同,那么哪个值会得到更新?第一个值,根据std::min的标准行为,请参阅。“返回值:a和b中的较小值。如果值相等,则返回a。”很简单,将其称为
minref
,未重载min
@cheers和hth.-Alf:该名称似乎暗示min
不返回引用。然后将其命名为minnonconstref
:p有没有讨论过为什么在第一个版本的min/max中没有提供此功能?简单的疏忽?@engf-010-这是,但不是这里的问题。
std::min(x, y) += 1;
int i = 1; std::min(i, 0);