62 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
// Build with "cl.exe /Z7 /GR- /GS- /GX- every-class.cpp /link /debug:full /nodefaultlib /incremental:no /entry:main"
 | 
						|
 | 
						|
#include <stdint.h>
 | 
						|
 | 
						|
// clang-format off
 | 
						|
void *__purecall = 0;
 | 
						|
 | 
						|
void __cdecl operator delete(void *, unsigned int) {}
 | 
						|
void __cdecl operator delete(void *, unsigned __int64) {}
 | 
						|
 | 
						|
struct Nothing {};
 | 
						|
struct Constructor { Constructor() {} };
 | 
						|
struct Assignment {
 | 
						|
  Assignment &operator=(Assignment Other) { return *this; }
 | 
						|
};
 | 
						|
struct Cast {
 | 
						|
  operator int() { return 42; }
 | 
						|
};
 | 
						|
 | 
						|
struct Nested {
 | 
						|
  struct F {};
 | 
						|
};
 | 
						|
struct Operator {
 | 
						|
  int operator+(int X) { return 42; }
 | 
						|
};
 | 
						|
 | 
						|
class Class {};
 | 
						|
 | 
						|
union Union {};
 | 
						|
 | 
						|
enum class Enum {A};
 | 
						|
 | 
						|
 | 
						|
template<typename T> void f(T t) {}
 | 
						|
 | 
						|
int main(int argc, char **argv) {
 | 
						|
  struct Scoped {};
 | 
						|
  
 | 
						|
  struct { } Anonymous;
 | 
						|
 | 
						|
  f(Nothing{});
 | 
						|
  f(Constructor{});
 | 
						|
  f(Assignment{});
 | 
						|
  f(Cast{});
 | 
						|
  f(Nested{});
 | 
						|
  f(Operator{});
 | 
						|
  f(Nested::F{});
 | 
						|
  f(Scoped{});
 | 
						|
  f(Class{});
 | 
						|
  f(Union{});
 | 
						|
  f(Anonymous);
 | 
						|
  f(Enum::A);
 | 
						|
  
 | 
						|
 | 
						|
  f<const Nothing>(Nothing{});
 | 
						|
  f<volatile Nothing>(Nothing{});
 | 
						|
  f<const volatile Nothing>(Nothing{});
 | 
						|
  f<__unaligned Nothing>(Nothing{});
 | 
						|
 | 
						|
  return 0;
 | 
						|
}
 |