gpt4 book ai didi

c++ - C++ 中的 min= 成语?

转载 作者:可可西里 更新时间:2023-11-01 18:43:20 26 4
gpt4 key购买 nike

我们使用

x += y

代替

x = x + y

*,/,- 和其他运算符也类似。那么,怎么样

x min= y

代替

x = std::min(x, y)

?此命令是否有一个常用的习惯用法,不需要使用另一个运算符对语言进行(不可能的)扩展?

最佳答案

这当然不是惯用的,但您可以使用称为命名运算符的东西(请参阅这些问答 herehere,由@Yakk 和@KonradRudolph 开发),然后写

x <min>= y;

这是通过重载 operator< 实现的和 operator> ,结合巧妙的包裹named_operator .完整代码由上面的链接给出,但使用的代码如下

template <typename T1, typename T2, typename F>
inline auto operator >(named_operator_lhs<T1, F> const& lhs, T2 const& rhs)
-> decltype(lhs.f(std::declval<T1>(), std::declval<T2>()))
{
return lhs.f(lhs.value, rhs);
}

使用 std::min作为模板参数的模板参数 F , 将用 lhs 和 rhs 的最小值更新表达式的 lhs。

关于c++ - C++ 中的 min= 成语?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18055093/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com