• gracicotOP
    link
    fedilink
    English
    arrow-up
    1
    ·
    vor 3 Jahren

    I think compiler move return value by default, so even without NRVO you should never move a return value when it’s a local non reference variable.

    • 🇨🇦 tunetardis@lemmy.ca
      link
      fedilink
      English
      arrow-up
      1
      ·
      vor 3 Jahren

      Well the test3 example FTA gives a case where NRVO would not happen because of the conditional return value. Are you suggesting that you need not std::move even in this case?

      • gracicotOP
        link
        fedilink
        English
        arrow-up
        1
        ·
        vor 3 Jahren

        I would still say “no” since they are local objects and they are gonna be moved from implicitly anyway