File tree 5 files changed +38
-5
lines changed
5 files changed +38
-5
lines changed Original file line number Diff line number Diff line change @@ -87,7 +87,8 @@ private static bool HasFieldsOrVirtuals(Class @class)
87
87
{
88
88
if ( @class . Fields . Count > 0 || @class . IsDynamic )
89
89
return true ;
90
- return @class . HasBaseClass && @class . Bases . Any ( @base => @base . IsClass && HasFieldsOrVirtuals ( @base . Class ) ) ;
90
+ return @class . Bases . Any ( @base => @base . IsClass && @base . Class != @class &&
91
+ HasFieldsOrVirtuals ( @base . Class ) ) ;
91
92
}
92
93
}
93
94
}
Original file line number Diff line number Diff line change @@ -437,4 +437,10 @@ public void TestConversionForCtorWithDefaultParams()
437
437
Assert . That ( foo . A , Is . EqualTo ( 15 ) ) ;
438
438
}
439
439
}
440
+
441
+ [ Test ]
442
+ public unsafe void TestSizeOfDerivesFromTemplateInstantiation ( )
443
+ {
444
+ Assert . That ( sizeof ( DerivesFromTemplateInstantiation . Internal ) , Is . EqualTo ( sizeof ( int ) ) ) ;
445
+ }
440
446
}
Original file line number Diff line number Diff line change @@ -789,3 +789,12 @@ void TestOutTypeInterfaces::funcTryInterfaceTypePtrOut(CS_OUT TestParamToInterfa
789
789
void TestOutTypeInterfaces::funcTryInterfaceTypeOut (CS_OUT TestParamToInterfacePassBaseTwo classTry)
790
790
{
791
791
}
792
+
793
+ template <typename T>
794
+ TemplateWithDependentField<T>::TemplateWithDependentField()
795
+ {
796
+ }
797
+
798
+ DerivesFromTemplateInstantiation::DerivesFromTemplateInstantiation ()
799
+ {
800
+ }
Original file line number Diff line number Diff line change @@ -708,12 +708,26 @@ class OverrideFromIndirectSecondaryBase : public OverrideFromDirectSecondaryBase
708
708
class DLL_API TestVariableWithFixedArrayType
709
709
{
710
710
public:
711
- static Foo variableWithFixedArrayType[2 ];
711
+ static Foo variableWithFixedArrayType[2 ];
712
712
};
713
713
714
714
class DLL_API TestOutTypeInterfaces
715
715
{
716
716
public:
717
- void funcTryInterfaceTypePtrOut (CS_OUT TestParamToInterfacePassBaseTwo* classTry);
718
- void funcTryInterfaceTypeOut (CS_OUT TestParamToInterfacePassBaseTwo classTry);
717
+ void funcTryInterfaceTypePtrOut (CS_OUT TestParamToInterfacePassBaseTwo* classTry);
718
+ void funcTryInterfaceTypeOut (CS_OUT TestParamToInterfacePassBaseTwo classTry);
719
+ };
720
+
721
+ template <typename T>
722
+ class TemplateWithDependentField
723
+ {
724
+ public:
725
+ TemplateWithDependentField ();
726
+ T t;
727
+ };
728
+
729
+ class DerivesFromTemplateInstantiation : public TemplateWithDependentField <int >
730
+ {
731
+ public:
732
+ DerivesFromTemplateInstantiation ();
719
733
};
Original file line number Diff line number Diff line change @@ -842,4 +842,7 @@ namespace boost
842
842
{
843
843
template <class T > struct is_member_pointer_cv { static const bool value = false ; };
844
844
template <class T , class U >struct is_member_pointer_cv <T U::*> { static const bool value = true ; };
845
- }
845
+ }
846
+
847
+ template <std::size_t N, std::size_t ... I>
848
+ struct build_index_impl : build_index_impl<N - 1 , N - 1 , I...> {};
You can’t perform that action at this time.
0 commit comments