Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
@ -92,13 +92,13 @@ namespace CppSharp.Types.Std
public override void CSharpMarshalToManaged(CSharpMarshalContext ctx)
{
var type = ctx.ReturnType.Type;
var type = ctx.ReturnType.Type.Desugar();
ClassTemplateSpecialization basicString = GetBasicString(type);
Declaration c_str = basicString.Methods.FirstOrDefault(m => m.OriginalName == "c_str");
if (!c_str.IsGenerated)
c_str = basicString.Properties.First(p => p.OriginalName == "c_str");
var typePrinter = new CSharpTypePrinter(ctx.Context);
if (type.IsPointer() || ctx.Declaration is Field)
if (type.IsAddress() || ctx.Declaration is Field)
ctx.Return.Write("{0}.{1}({2}).{3}{4}",
basicString.Visit(typePrinter), Helpers.CreateInstanceIdentifier,
@ -665,6 +665,8 @@ This is a very long string. This is a very long string. This is a very long stri
Assert.That(hasStdString.testStdString(t), Is.EqualTo(t + "_test"));
hasStdString.s = t;
Assert.That(hasStdString.s, Is.EqualTo(t));
Assert.That(hasStdString.stdString, Is.EqualTo(t));
}
@ -430,6 +430,11 @@ std::string HasStdString::testStdString(std::string s)
return s + "_test";
std::string& HasStdString::getStdString()
return s;
TypeMappedIndex::TypeMappedIndex()
@ -759,6 +759,7 @@ class DLL_API HasStdString
public:
std::string testStdString(std::string s);
std::string s;
std::string& getStdString();
};
class DLL_API InternalCtorAmbiguity