@ -977,4 +977,13 @@ This is a very long string. This is a very long string. This is a very long stri
Assert.That(ret, Is.EqualTo(10));
}
[Test]
public void TestStructWithIndirectReturn()
{
using (var structWithIndirectReturn = StructWithIndirectReturn.ReturnStructIndirectReturn())
Assert.That(structWithIndirectReturn.A, Is.EqualTo(1));
@ -1167,3 +1167,23 @@ BaseCovariant::~BaseCovariant()
DerivedCovariant::~DerivedCovariant()
StructWithIndirectReturn::StructWithIndirectReturn() :
A(1)
StructWithIndirectReturn::StructWithIndirectReturn(StructWithIndirectReturn& s) :
A(s.A)
StructWithIndirectReturn::StructWithIndirectReturn(StructWithIndirectReturn&& s) :
StructWithIndirectReturn StructWithIndirectReturn::ReturnStructIndirectReturn()
return StructWithIndirectReturn();
@ -1573,4 +1573,14 @@ class TemplateClass : TemplateClassBase<A,B> {
using typename TemplateClassBase<A,B>::XType;
using Func = std::function<B(XType)>;
explicit TemplateClass(Func function) {}
};
struct DLL_API StructWithIndirectReturn
StructWithIndirectReturn();
StructWithIndirectReturn(StructWithIndirectReturn&);
StructWithIndirectReturn(StructWithIndirectReturn&&);
int A;
static StructWithIndirectReturn ReturnStructIndirectReturn();