Revised operator+= for better efficiency