Document operator->*

This commit is contained in:
Peter Dimov 2021-09-05 07:05:49 +03:00
parent d7a1fccc89
commit d57e7e1618

View File

@ -86,6 +86,10 @@ template<class A, class B> auto operator^=( A && a, B && b );
template<class A, class B> auto operator<<=( A && a, B && b ); template<class A, class B> auto operator<<=( A && a, B && b );
template<class A, class B> auto operator>>=( A && a, B && b ); template<class A, class B> auto operator>>=( A && a, B && b );
// additional binary operators
template<class A, class B> auto operator->*( A && a, B && b );
} // namespace lambda2 } // namespace lambda2
} // namespace boost } // namespace boost
``` ```
@ -388,3 +392,16 @@ template<class A, class B> auto operator@=( A && a, B && b );
+ +
Returns: :: `std::bind( fn, std::forward<A>(a), std::forward<B>(b) );`, Returns: :: `std::bind( fn, std::forward<A>(a), std::forward<B>(b) );`,
where `fn` is a function object such that `fn(x, y)` returns `x @= y`. where `fn` is a function object such that `fn(x, y)` returns `x @= y`.
### Additional Binary Operators
```
template<class A, class B> auto operator->*( A && a, B && b );
```
[none]
* {blank}
+
Returns: :: `std::bind( std::forward<B>(b), std::forward<A>(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`.