• @QuadriLiteral
    link
    27 months ago

    I wonder if the language could be updated so these extra std::move invocations actually become harmless? return std::move is something that I see used quite a bit.

    • @lysdexicOPM
      link
      English
      17 months ago

      I wonder if the language could be updated so these extra std::move invocations actually become harmless? return std::move is something that I see used quite a bit.

      These std::move invocations are harmless, as they only cast objects to their rvalue reference.

      The destructive bit takes place in the type they are assigned to, as it invokes either a move constructor or a move assignment operator, and calling those implies that the object you just passed to std::move will be invalidated after the call and should not be used subsequently.

      • @QuadriLiteral
        link
        17 months ago

        I mean harmless in a way that using std::move on the return type doesn’t prevent RVO?

        • @lysdexicOPM
          link
          English
          17 months ago

          RVO

          I recommend you read the thread.

            • @lysdexicOPM
              link
              English
              17 months ago

              It doesn’t look like it, otherwise you’d be aware that the whole point of this submission is that casting return values with std::move disables RVO.

              • Dani (:cxx: modules addict)
                link
                fedilink
                17 months ago

                @lysdexic You claimed otherwise:
                "
                These std::move invocations are harmless, as they only cast objects to their rvalue reference.
                "
                If you were right, we wouldn’t have the motivation to look at this in EWG.

                • @lysdexicOPM
                  link
                  English
                  17 months ago

                  If you were right, we wouldn’t have the motivation to look at this in EWG.

                  I am right. Not benefiting from RVO does not mean you’re harming anyone.

                  Again, I recommend you read the submission and also the discussion.