xref: /minix3/external/bsd/llvm/dist/clang/test/CXX/dcl.dcl/dcl.spec/dcl.fct.spec/p6.cpp (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1 // RUN: %clang_cc1 -verify %s
2 
3 class A {
4 public:
5   explicit A();
6 
7   explicit operator int(); // expected-warning {{explicit conversion functions are a C++11 extension}}
8 
9   explicit void f0(); // expected-error {{'explicit' can only be applied to a constructor or conversion function}}
10 
11   operator bool();
12 };
13 
A()14 explicit A::A() { } // expected-error {{'explicit' can only be specified inside the class definition}}
operator bool()15 explicit A::operator bool() { return false; }  // expected-warning {{explicit conversion functions are a C++11 extension}}\
16                                                // expected-error {{'explicit' can only be specified inside the class definition}}
17 
18 class B {
19   friend explicit A::A(); // expected-error {{'explicit' is invalid in friend declarations}}
20 };
21