|
From: | John W. Eaton |
Subject: | Re: move constructors likely a requirement |
Date: | Thu, 5 Sep 2019 10:20:52 -0400 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 |
On 9/5/19 7:59 AM, Carlo De Falco wrote:
Il giorno 4 set 2019, alle ore 20:14, John W. Eaton <address@hidden> ha scritto: If I understand correctly, -Wpessimizing-move is supposed to be implied when compiling C++ code with GCC and using -Wall.If I understand correctly, copy elision is mandated by the standard only since c++14, while we are using c++11. Could it be possible that gcc and clang have different criteria to decide whether to make the optimization?
I compiled the following program with g++ 9 (the version that introduced the -Wpessimizing-move warning option) using both -std=c++17 and no -std option (defaults to c++14) and the warnings are the same in both cases.
#include <utility> struct T { void show () { } }; T fn () { T t1; // No warning from GCC here. T t2 = std::move (T ()); t2.show (); // GCC does warn here. return std::move (t1); } jwe
[Prev in Thread] | Current Thread | [Next in Thread] |