112a9d9c8Sopenharmony_ci// bindgen-flags: --with-derive-hash --with-derive-partialeq --with-derive-eq 212a9d9c8Sopenharmony_ciclass A { 312a9d9c8Sopenharmony_cipublic: 412a9d9c8Sopenharmony_ci int member_a; 512a9d9c8Sopenharmony_ci class B { 612a9d9c8Sopenharmony_ci int member_b; 712a9d9c8Sopenharmony_ci }; 812a9d9c8Sopenharmony_ci 912a9d9c8Sopenharmony_ci class C; 1012a9d9c8Sopenharmony_ci 1112a9d9c8Sopenharmony_ci template<typename T> 1212a9d9c8Sopenharmony_ci class D { 1312a9d9c8Sopenharmony_ci T foo; 1412a9d9c8Sopenharmony_ci }; 1512a9d9c8Sopenharmony_ci}; 1612a9d9c8Sopenharmony_ci 1712a9d9c8Sopenharmony_ciclass A::C { 1812a9d9c8Sopenharmony_ci int baz; 1912a9d9c8Sopenharmony_ci}; 2012a9d9c8Sopenharmony_ci 2112a9d9c8Sopenharmony_ciA::B var; 2212a9d9c8Sopenharmony_ciA::D<int> baz; 2312a9d9c8Sopenharmony_ci 2412a9d9c8Sopenharmony_ciclass D { 2512a9d9c8Sopenharmony_ci A::B member; 2612a9d9c8Sopenharmony_ci}; 2712a9d9c8Sopenharmony_ci 2812a9d9c8Sopenharmony_citemplate<typename T> 2912a9d9c8Sopenharmony_ciclass Templated { 3012a9d9c8Sopenharmony_ci T member; 3112a9d9c8Sopenharmony_ci 3212a9d9c8Sopenharmony_ci class Templated_inner { 3312a9d9c8Sopenharmony_ci public: 3412a9d9c8Sopenharmony_ci T* member_ptr; 3512a9d9c8Sopenharmony_ci void get(); 3612a9d9c8Sopenharmony_ci }; 3712a9d9c8Sopenharmony_ci}; 38