28 lines · cpp
1namespace llvm {2template <int, typename...>3class impl;4// basecase5template <int n>6class impl<n> {};7// recursion8template <int n, typename T, typename... TS>9class impl<n, T, TS...> : impl<n + 1, TS...> {10 using child = impl<n + 1, TS...>;11 using child::child; // no-crash12 impl(T);13};14template <typename... TS>15class container : impl<0, TS...> {};16} // namespace llvm17namespace clang {18class fun {19 llvm::container<int, float> k;20 fun() {}21};22class DeclContextLookupResult {23 static int *const SingleElementDummyList;24};25} // namespace clang26using namespace clang;27int *const DeclContextLookupResult::SingleElementDummyList = nullptr;28