forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			40 lines
		
	
	
		
			464 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			464 B
		
	
	
	
		
			C++
		
	
	
	
| // RUN: %clang_cc1 -fsyntax-only -verify -std=c++0x %s
 | |
| namespace Constructor {
 | |
| struct A {
 | |
|   A(int);
 | |
| };
 | |
| 
 | |
| struct B {
 | |
|   explicit B(int);
 | |
| };
 | |
| 
 | |
| B::B(int) { }
 | |
| 
 | |
| struct C {
 | |
|   void f(const A&);
 | |
|   void f(const B&);
 | |
| };
 | |
| 
 | |
| void f(C c) {
 | |
|   c.f(10);
 | |
| }
 | |
| }
 | |
| 
 | |
| namespace Conversion {
 | |
|   struct A {
 | |
|     operator int();
 | |
|     explicit operator bool();
 | |
|   };
 | |
| 
 | |
|   A::operator bool() { return false; } 
 | |
| 
 | |
|   struct B {
 | |
|     void f(int);
 | |
|     void f(bool);
 | |
|   };
 | |
| 
 | |
|   void f(A a, B b) {
 | |
|     b.f(a);
 | |
|   }
 | |
| }
 |