]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/CXX/dcl.decl/dcl.init/p14-0x.cpp
Vendor import of clang release_30 branch r142614:
[FreeBSD/FreeBSD.git] / test / CXX / dcl.decl / dcl.init / p14-0x.cpp
1 // RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s
2
3 struct NoDefault {
4   NoDefault() = delete; // expected-note {{here}}
5   NoDefault(int);
6 };
7 struct Explicit { // expected-note 2 {{candidate}} expected-note {{here}}
8   explicit Explicit(int);
9 };
10 struct NoCopy {
11   NoCopy();
12   NoCopy(const NoCopy &) = delete; // expected-note {{here}}
13 };
14 struct NoMove {
15   NoMove();
16   NoMove(NoMove &&) = delete; // expected-note {{here}}
17 };
18 class Private {
19   Private(int); // expected-note {{here}}
20 public:
21   Private();
22 };
23 class Friend {
24   friend class S;
25   Friend(int);
26 };
27
28
29 class 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