p1.cpp revision 455e3e18b8ec4a7ba3a412b9b6be99b19b7c6970
1// RUN: %clang_cc1 -std=c++11 -verify %s 2 3// A function that is explicitly defaulted shall 4// [...] 5// -- not have default arguments 6struct DefArg { 7 DefArg(int n = 5) = default; // expected-error {{an explicitly-defaulted constructor cannot have default arguments}} 8 DefArg(const DefArg &DA = DefArg(2)) = default; // expected-error {{an explicitly-defaulted constructor cannot have default arguments}} 9 DefArg(const DefArg &DA, int k = 3) = default; // expected-error {{an explicitly-defaulted copy constructor cannot have default arguments}} 10 DefArg(DefArg &&DA, int k = 3) = default; // expected-error {{an explicitly-defaulted move constructor cannot have default arguments}} 11 DefArg &operator=(const DefArg&, int k = 4) = default; // expected-error {{parameter of overloaded 'operator=' cannot have a default argument}} 12 DefArg &operator=(DefArg&&, int k = 4) = default; // expected-error {{parameter of overloaded 'operator=' cannot have a default argument}} 13 ~DefArg(int k = 5) = default; // expected-error {{destructor cannot have any parameters}} 14}; 15