https://issues.dlang.org/show_bug.cgi?id=15608
Nicholas Wilson <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |[email protected] | |m Resolution|--- |WORKSFORME --- Comment #5 from Nicholas Wilson <[email protected]> --- 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@Component@@UEAA?AUVariant@@UString@@U?$Slice@$$CBUVariant@@@@@Z --
