ffects, it shall not be destroyed before the end of its block,
      nor shall it be eliminated as an optimization even if it appears to be
      unused, except that a class object or its copy may be eliminated as
      specified in 12.8.
    </blockquote>
    The reference to 12.8 is important for us:

    <blockquote>
      12.8/15: Copying class objects<br>
       ...<br>
       For a function with a class return type, if the expression in the
      return statement is the name of a local object, and the