Clang Project

clang_source_code/test/CXX/class.derived/class.abstract/p2.cpp
1// RUN: %clang_cc1 -std=c++1z -verify %s
2
3// no objects of an abstract class can be created except as subobjects of a
4// class derived from it
5
6struct A {
7  A() {}
8  A(int) : A() {} // ok
9
10  virtual void f() = 0; // expected-note 1+{{unimplemented}}
11};
12
13void f(A &&a);
14
15void g() {
16  f({}); // expected-error {{abstract class}}
17  f({0}); // expected-error {{abstract class}}
18  f(0); // expected-error {{abstract class}}
19}
20
21struct B : A {
22  B() : A() {} // ok
23};
24