1*8e01c069SJohn Thompson // Exercise some template issues. Should not produce errors. 2*8e01c069SJohn Thompson 3*8e01c069SJohn Thompson // Forward declaration. 4*8e01c069SJohn Thompson template<class T> class TemplateClass; 5*8e01c069SJohn Thompson 6*8e01c069SJohn Thompson // Full declaration. 7*8e01c069SJohn Thompson template<class T>class TemplateClass { 8*8e01c069SJohn Thompson public: TemplateClass()9*8e01c069SJohn Thompson TemplateClass() {} 10*8e01c069SJohn Thompson private: 11*8e01c069SJohn Thompson T Member; 12*8e01c069SJohn Thompson }; 13*8e01c069SJohn Thompson 14*8e01c069SJohn Thompson // Template alias. 15*8e01c069SJohn Thompson template<class T> using TemplateClassAlias = TemplateClass<T>; 16