112a9d9c8Sopenharmony_ci 212a9d9c8Sopenharmony_citemplate<typename T> 312a9d9c8Sopenharmony_ciclass Foo { 412a9d9c8Sopenharmony_cipublic: 512a9d9c8Sopenharmony_ci Foo(); 612a9d9c8Sopenharmony_ci 712a9d9c8Sopenharmony_ci void doBaz(); 812a9d9c8Sopenharmony_ci}; 912a9d9c8Sopenharmony_ci 1012a9d9c8Sopenharmony_citemplate<typename T> 1112a9d9c8Sopenharmony_civoid 1212a9d9c8Sopenharmony_ciFoo<T>::doBaz() { 1312a9d9c8Sopenharmony_ci} 1412a9d9c8Sopenharmony_ci 1512a9d9c8Sopenharmony_ciclass Bar { 1612a9d9c8Sopenharmony_cipublic: 1712a9d9c8Sopenharmony_ci Bar(); 1812a9d9c8Sopenharmony_ci}; 1912a9d9c8Sopenharmony_ci 2012a9d9c8Sopenharmony_citemplate<typename T> 2112a9d9c8Sopenharmony_ciFoo<T>::Foo() { 2212a9d9c8Sopenharmony_ci} 2312a9d9c8Sopenharmony_ci 2412a9d9c8Sopenharmony_ciBar::Bar() { 2512a9d9c8Sopenharmony_ci} 26