Обратите внимание, что у вас много выделений, начиная с аргументов, передаваемых по значению, а не по константной ссылке.
Тогда a+a
, что вы не можете избежать.
затем интересная часть:
(b + b) + b
, которые создают 2 распределения для 2 временных.
затем вы используете назначение перемещения, которое заменяет a_string
на временное: нет выделения.
Это может быть установлено вызовами на __doPostBack
в JavaScript на странице.
Эта статья объясняет это в немного большем количестве деталей.