From d57e7e16182ef97a8752a0c96e1b678b081e8da9 Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Sun, 5 Sep 2021 07:05:49 +0300 Subject: [PATCH] Document operator->* --- doc/lambda2/reference.adoc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/doc/lambda2/reference.adoc b/doc/lambda2/reference.adoc index fc0c24b..f72e132 100644 --- a/doc/lambda2/reference.adoc +++ b/doc/lambda2/reference.adoc @@ -86,6 +86,10 @@ template auto operator^=( A && a, B && b ); template auto operator<<=( A && a, B && b ); template auto operator>>=( A && a, B && b ); +// additional binary operators + +template auto operator->*( A && a, B && b ); + } // namespace lambda2 } // namespace boost ``` @@ -388,3 +392,16 @@ template auto operator@=( A && a, B && b ); + Returns: :: `std::bind( fn, std::forward(a), std::forward(b) );`, where `fn` is a function object such that `fn(x, y)` returns `x @= y`. + +### Additional Binary Operators + +``` +template auto operator->*( A && a, B && b ); +``` +[none] +* {blank} ++ +Returns: :: `std::bind( std::forward(b), std::forward(a) );` +Notes: :: This operator is intended to be used with "projection" function + objects such as member pointers or member functions taking zero arguments, + as in `_1\->*&X::m` or `_1\->*&X::f`.