http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58407

            Bug ID: 58407
           Summary: [C++1] Should warn about deprecated implicit
                    generation of copy constructor/assignment
           Product: gcc
           Version: 4.8.1
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: akrzemi1 at gmail dot com

The following program is correct in C++11, but uses a deprecated language
feature. According section D.3, paragraph 1:
"The implicit definition of a copy constructor as defaulted is deprecated if
the class has a user-declared copy assignment operator or a user-declared
destructor. The implicit definition of a copy assignment operator as defaulted
is deprecated if the class has a user-declared copy constructor or a
user-declared destructor." 

G++ should emit a warning in C++11 mode.

====================

struct W {
  int a;
  ~W() { a = 9; }
};

int main() {
 W w {};
 W v = w;
}

Reply via email to