template struct SomeTemplate {}; struct DefinedInCommon { void f(); struct Inner {}; friend void FoundByADL(DefinedInCommon); }; template struct CommonTemplate { enum E { a = 1, b = 2, c = 3 }; }; namespace Std { template struct WithFriend { friend bool operator!=(const WithFriend &A, const WithFriend &B) { return false; } }; } namespace Std { template void f() { extern T g(); } } template struct TemplateInstantiationVisibility { typedef int type; }; template struct Outer { template struct Inner { static constexpr int f(); static constexpr int g(); }; }; template struct WithPartialSpecialization {}; template struct WithPartialSpecialization { typedef int type; }; typedef WithPartialSpecialization WithPartialSpecializationUse; typedef WithPartialSpecialization WithPartialSpecializationUse2; template struct WithExplicitSpecialization; typedef WithExplicitSpecialization WithExplicitSpecializationUse; template struct WithImplicitSpecialMembers { int n; }; template struct WithAliasTemplate { template using X = T; }; template struct WithAnonymousDecls { struct { bool k; }; union { int a, b; }; struct { int c, d; } s; enum { e = 123 }; typedef int X; }; namespace hidden_specializations { template void fn() {} template struct cls { static void nested_fn() {} struct nested_cls {}; static int nested_var; enum class nested_enum {}; template static void nested_fn_t() {} template struct nested_cls_t {}; template static int nested_var_t; }; template int var; } #include "cxx-templates-textual.h"