@@ -127,6 +127,17 @@ BOOST_LAMBDA2_UNARY_FN(--, decrement)
127127BOOST_LAMBDA2_POSTFIX_FN (++, postfix_increment)
128128BOOST_LAMBDA2_POSTFIX_FN (--, postfix_decrement)
129129
130+ BOOST_LAMBDA2_BINARY_FN (+=, plus_equal)
131+ BOOST_LAMBDA2_BINARY_FN (-=, minus_equal)
132+ BOOST_LAMBDA2_BINARY_FN (*=, multiplies_equal)
133+ BOOST_LAMBDA2_BINARY_FN (/=, divides_equal)
134+ BOOST_LAMBDA2_BINARY_FN (%=, modulus_equal)
135+ BOOST_LAMBDA2_BINARY_FN (&=, bit_and_equal)
136+ BOOST_LAMBDA2_BINARY_FN (|=, bit_or_equal)
137+ BOOST_LAMBDA2_BINARY_FN (^=, bit_xor_equal)
138+ BOOST_LAMBDA2_BINARY_FN (<<=, left_shift_equal)
139+ BOOST_LAMBDA2_BINARY_FN (>>=, right_shift_equal)
140+
130141// operators
131142
132143template <class T > using remove_cvref_t = std::remove_cv_t <std::remove_reference_t <T>>;
@@ -202,6 +213,19 @@ BOOST_LAMBDA2_UNARY_LAMBDA(--, lambda2_detail::decrement)
202213BOOST_LAMBDA2_POSTFIX_LAMBDA (++, lambda2_detail::postfix_increment)
203214BOOST_LAMBDA2_POSTFIX_LAMBDA (--, lambda2_detail::postfix_decrement)
204215
216+ // compound assignment
217+
218+ BOOST_LAMBDA2_BINARY_LAMBDA (+=, lambda2_detail::plus_equal)
219+ BOOST_LAMBDA2_BINARY_LAMBDA (-=, lambda2_detail::minus_equal)
220+ BOOST_LAMBDA2_BINARY_LAMBDA (*=, lambda2_detail::multiplies_equal)
221+ BOOST_LAMBDA2_BINARY_LAMBDA (/=, lambda2_detail::divides_equal)
222+ BOOST_LAMBDA2_BINARY_LAMBDA (%=, lambda2_detail::modulus_equal)
223+ BOOST_LAMBDA2_BINARY_LAMBDA (&=, lambda2_detail::bit_and_equal)
224+ BOOST_LAMBDA2_BINARY_LAMBDA (|=, lambda2_detail::bit_or_equal)
225+ BOOST_LAMBDA2_BINARY_LAMBDA (^=, lambda2_detail::bit_xor_equal)
226+ BOOST_LAMBDA2_BINARY_LAMBDA (<<=, lambda2_detail::left_shift_equal)
227+ BOOST_LAMBDA2_BINARY_LAMBDA (>>=, lambda2_detail::right_shift_equal)
228+
205229} // namespace lambda2
206230} // namespace boost
207231
0 commit comments