[Issue 15608] extern(C++) mangling problem
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Mon Jun 10 04:49:46 UTC 2019
https://issues.dlang.org/show_bug.cgi?id=15608
Nicholas Wilson <iamthewilsonator at hotmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |iamthewilsonator at hotmail.co
| |m
Resolution|--- |WORKSFORME
--- Comment #5 from Nicholas Wilson <iamthewilsonator at hotmail.com> ---
god bolt MSVC v19.20:
template<typename T>
struct Slice {};
struct String {};
struct Variant {};
void foo();
class IComponent
{
virtual Variant CallMethod(String method, Slice<const Variant> args) = 0;
};
class Component : public IComponent
{
public:
Variant CallMethod(String method, Slice<const Variant> args) override final
{
foo();
Variant v;
return v;
}
};
LDC beta:
extern(C++) interface IComponent
{
Variant CallMethod(String method, Slice!(const(Variant)) args);
}
extern (C++) class Component : IComponent
{
final override Variant CallMethod(String method, Slice!(const(Variant))
args);
pragma(msg, CallMethod.mangleof);
}
extern(C++) struct Slice(T) {}
extern(C++) struct String {}
extern(C++) struct Variant {}
both give
//?CallMethod at Component@@UEAA?AUVariant@@UString@@U?$Slice@$$CBUVariant@@@@@Z
--
More information about the Digitalmars-d-bugs
mailing list