28 lines
		
	
	
		
			646 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			646 B
		
	
	
	
		
			C++
		
	
	
	
namespace llvm {
 | 
						|
template <int, typename...>
 | 
						|
class impl;
 | 
						|
// basecase
 | 
						|
template <int n>
 | 
						|
class impl<n> {};
 | 
						|
// recursion
 | 
						|
template <int n, typename T, typename... TS>
 | 
						|
class impl<n, T, TS...> : impl<n + 1, TS...> {
 | 
						|
  using child = impl<n + 1, TS...>;
 | 
						|
  using child::child; // no-crash
 | 
						|
  impl(T);
 | 
						|
};
 | 
						|
template <typename... TS>
 | 
						|
class container : impl<0, TS...> {};
 | 
						|
} // namespace llvm
 | 
						|
namespace clang {
 | 
						|
class fun {
 | 
						|
  llvm::container<int, float> k;
 | 
						|
  fun() {}
 | 
						|
};
 | 
						|
class DeclContextLookupResult {
 | 
						|
  static int *const SingleElementDummyList;
 | 
						|
};
 | 
						|
} // namespace clang
 | 
						|
using namespace clang;
 | 
						|
int *const DeclContextLookupResult::SingleElementDummyList = nullptr;
 |