Browse Source

Fix anonymous unions inside template classes

refactor
josetr 3 years ago
parent
commit
06d311dc89
  1. 2
      src/Generator/Passes/FlattenAnonymousTypesToFields.cs
  2. 19
      tests/CSharp/CSharpTemplates.h

2
src/Generator/Passes/FlattenAnonymousTypesToFields.cs

@ -16,7 +16,7 @@ namespace CppSharp.Passes @@ -16,7 +16,7 @@ namespace CppSharp.Passes
public override bool VisitClassDecl(Class @class)
{
if (!base.VisitClassDecl(@class) || @class.Ignore || @class.IsDependent)
if (!base.VisitClassDecl(@class) || @class.Ignore)
return false;
for (int i = @class.Fields.Count - 1; i >= 0; i--)

19
tests/CSharp/CSharpTemplates.h

@ -221,6 +221,25 @@ void Base<T>::invokeFriend() @@ -221,6 +221,25 @@ void Base<T>::invokeFriend()
f(Nested());
}
template <typename T>
struct TemplateUnionField
{
union
{
struct
{
T x, y, z;
};
T v;
};
};
struct TemplateUnionFieldInstantiation
{
TemplateUnionField<int> tuf;
TemplateUnionField<float> tuf1;
};
template <typename T>
class DependentValueFields : public Base<T>
{

Loading…
Cancel
Save