• perivesta@feddit.de
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    2 years ago

    I think you should never std::move return values. Afaik every modern compiler does NRVO and manually moving prevents it. And on the offchance you need to use a compiler that optimizes less, that one copy most likely is the least of the performance concerns.

    • tunetardis@lemmy.ca
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 years ago

      Afaik every modern compiler does NRVO and manually moving prevents it.

      Yeah this is what bothers me. std::move could make things worse, but not if the alternative is a copy. But you’re probably right that any self-respecting compiler nowadays would do NRVO.