1 #ifndef UNDECLARED_TYPES_H_ 2 #define UNDECLARED_TYPES_H_ 3 4 using ::namespace_a::A; 5 typedef const namespace_b::B *B; 6 using C = namespace_c::C[]; 7 8 extern A a; 9 extern namespace_b::template_b<B> b; 10 extern const decltype(b) c; 11 inline_function(template_c<template_d<C>> d)12inline A &inline_function(template_c<template_d<C>> d) { 13 LocalVar e; 14 return FunctionCall(d, e); 15 } 16 17 class InvalidClass { 18 A member; 19 20 D member_function(E); 21 virtual void virtual_function(float); 22 }; 23 24 #define DECLARE_VARIABLE extern TemplateInMacro<F> *template_in_macro 25 DECLARE_VARIABLE; 26 27 #endif // UNDECLARED_TYPES_H_ 28