diff options
-rw-r--r-- | src/parser.rs | 3 | ||||
-rw-r--r-- | tests/headers/class_nested.hpp | 9 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/parser.rs b/src/parser.rs index e6e60bab..9fef18f2 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -626,6 +626,9 @@ fn visit_composite(cursor: &Cursor, parent: &Cursor, visit_composite(c, p, ctx_, &mut ci_) }); + // Propagate template types to inner structs + ci2.borrow_mut().args.extend(ci.args.clone().into_iter()); + ci.members.push(CompMember::Comp(decl.compinfo())); // Anonymous structs are legal in both C++ and C11 diff --git a/tests/headers/class_nested.hpp b/tests/headers/class_nested.hpp index 05a775b8..670d418f 100644 --- a/tests/headers/class_nested.hpp +++ b/tests/headers/class_nested.hpp @@ -11,3 +11,12 @@ A::B var; class D { A::B member; }; + +template<typename T> +class Templated { + T member; + + class Templated_inner { + T* member_ptr; + }; +}; |