Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.std.c++ > #719

Is removing necessity of std::move for local variables used for the last time a good proposal?

Message-ID <874c0712-4aed-4a8f-991e-b064daa5000f@googlegroups.com> (permalink)
Newsgroups comp.std.c++
From Piotr Nycz <piotrwn1@googlemail.com>
Subject Is removing necessity of std::move for local variables used for the last time a good proposal?
Organization unknown
Date 2014-05-30 15:32 -0600

Show all headers | View raw


Hello,

During discussion on SO
(http://stackoverflow.com/questions/23929800/is-stdmove-really-needed-on-initialization-list-of-constructor-for-heavy-membe)
I came to conclusion that necessity of using std::move for arguments
passed by value or local variables can be somehow relaxed for a
specific case where they are used for the last time - so its lifetime
is practically expired.

Some examples:

struct President {
  std::string name;
  President(std::string p_name)
    : name(std::move(p_name))
      //   ^^^^^^^^^:  MOVE or NOT TO MOVE?
  {}
  void setDefaultName()
  {
      std::string l_name = "XYZ";
      name = std::move(l_name);
      //     ^^^^^^^^^:  MOVE or NOT TO MOVE?
  }
};

So, do you think is it a good idea to add a rule to C++ language that:

If the automatic variable is used as a source for copying and this is
the last time variable is used - then move is used instead of copy.

If the above rule would be added to language - then to my best
understanding - there would be no need to use std::move in my example.

My motivation is simple: there are plenty of C++03 where std::move was
not used. So, according to C++11 rules we shall add almost everywhere
this std::move?

BR,
Piotr


--
[ comp.std.c++ is moderated.  To submit articles, try posting with your ]
[ newsreader.  If that fails, use mailto:std-cpp-submit@vandevoorde.com ]
[              --- Please see the FAQ before posting. ---               ]
[ FAQ: http://www.comeaucomputing.com/csc/faq.html                      ]

Back to comp.std.c++ | Previous | NextNext in thread | Find similar


Thread

Is removing necessity of std::move for local variables used for the  last time a good proposal? Piotr Nycz <piotrwn1@googlemail.com> - 2014-05-30 15:32 -0600
  Re: Is removing necessity of std::move for local variables used for  the  last time a good proposal? SG <s.gesemann@googlemail.com> - 2014-06-05 12:31 -0600
    Re: Is removing necessity of std::move for local variables used for  the  last time a good proposal? Kalle Olavi Niemitalo <kon@iki.fi> - 2014-06-07 01:25 -0600
    Re: Is removing necessity of std::move for local variables used for   the  last time a good proposal? Piotr Nycz <piotrwn1@googlemail.com> - 2014-06-07 02:33 -0600
      Re: Is removing necessity of std::move for local variables used for   the  last time a good proposal? Daniel Krügler <daniel.kruegler@googlemail.com> - 2014-06-08 01:32 -0600
        Re: Is removing necessity of std::move for local variables used for    the  last time a good proposal? Piotr Nycz <piotrwn1@googlemail.com> - 2014-06-17 07:25 -0600

csiph-web