You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
1.0 KiB
26 lines
1.0 KiB
// RUN: %clang_cc1 -verify %s -std=c++11
|
|
|
|
// A function that is explicitly defaulted shall
|
|
struct A {
|
|
// -- be a special member function,
|
|
A(int) = default; // expected-error {{only special member functions may be defaulted}}
|
|
|
|
// -- have the same declared function type as if it had been implicitly
|
|
// declared
|
|
void operator=(const A &) = default; // expected-error {{must return 'A &'}}
|
|
A(...) = default; // expected-error {{cannot be variadic}}
|
|
A(const A &, ...) = default; // expected-error {{cannot be variadic}}
|
|
|
|
// (except for possibly differing ref-qualifiers
|
|
A &operator=(A &&) & = default;
|
|
|
|
// and except that in the case of a copy constructor or copy assignment
|
|
// operator, the parameter type may be "reference to non-const T")
|
|
A(A &) = default;
|
|
A &operator=(A &) = default;
|
|
|
|
// -- not have default arguments
|
|
A(double = 0.0) = default; // expected-error {{cannot have default arguments}}
|
|
A(const A & = 0) = default; // expected-error {{cannot have default arguments}}
|
|
};
|