Đó chắc chắn không phải là thành ngữ , nhưng bạn có thể sử dụng tên gọi được gọi là các toán tử có tên (xem những Q & Như here và here, được phát triển bởi @Yakk và @KonradRudolph), và viết
x <min>= y;
mà có thể được thực hiện bởi quá tải operator<
và operator>
, kết hợp với một thông minh bọc named_operator
. Mã đầy đủ được đưa ra bởi các liên kết ở trên, nhưng sử dụng mã như
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);
}
Sử dụng std::min
như mẫu đối số cho mẫu số F
, sẽ cập nhật các LHS của biểu thức với các min của LHS và RHS.
Yes. 'x min = y' thường được gọi là lỗi cú pháp *. :) –
'if (y
Bạn không thể phát minh ra toán tử mới trong C++ như vậy, vì vậy thành ngữ là những gì bạn đã viết: 'x = std :: min (x, y) '. –