1// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s 2 3struct NoDefault { 4 NoDefault() = delete; // expected-note {{here}} 5 NoDefault(int); 6}; 7struct Explicit { // expected-note 2 {{candidate}} expected-note {{here}} 8 explicit Explicit(int); 9}; 10struct NoCopy { 11 NoCopy(); 12 NoCopy(const NoCopy &) = delete; // expected-note {{here}} 13}; 14struct NoMove { 15 NoMove(); 16 NoMove(NoMove &&) = delete; // expected-note {{here}} 17}; 18class Private { 19 Private(int); // expected-note {{here}} 20public: 21 Private(); 22}; 23class Friend { 24 friend class S; 25 Friend(int); 26}; 27 28 29class S { 30 NoDefault nd1; 31 NoDefault nd2 = 42; 32 Explicit e1; // expected-note {{here}} 33 Explicit e2 = 42; // expected-error {{no viable conversion}} 34 NoCopy nc = NoCopy(); // expected-error {{call to deleted}} 35 NoMove nm = NoMove(); // expected-error {{call to deleted}} 36 Private p = 42; // expected-error {{private constructor}} 37 Friend f = 42; 38 39 S() {} // expected-error {{call to deleted constructor of 'NoDefault'}} \ 40 expected-error {{must explicitly initialize the member 'e1' which does not have a default constructor}} 41 S(int) : nd1(42), e1(42) {} 42}; 43 44// FIXME: test the other forms which use copy-initialization 45