On Sun, 04 Oct 2009 01:48:38 +0400, Michel Fortin
<michel.for...@michelf.com> wrote:
On 2009-10-03 17:13:45 -0400, BCS <n...@anon.com> said:
Hello Denis,
That's not always possible. Imagine LGPL'd code, or code which is
distributed in precompiled form only (header + library).
would, explicitly stating the mangled name work?
pragam(mangle, "mangled name") // proposed feature
extern(C++) uint SomeFunction();
Why not just:
extern(C++, "mangled name") uint SomeFunction();
where "mangled name" could be any constant expression?
Whatever the syntax, this is a great idea. With constant expressions for
mangled names someone could create a compile-time function or a template
creating mangled names for namespaced functions and member functions.
You could change that function/template to match any C++ compiler you
want.
I thought about that, too. This is a good idea, but it's also too
compiler-specific and somewhat error-prone.
I also thought about some Mangler template, which is capable of generating
a mangled name for a given function at compile time, and using it instead
of some pre-generated string.
This is a more generic solution, one could substitute different manglers
for different compiler vendors.
In this case, I could "typedef uint unsigned_long;" and my mangler would
recognize unsigned_long and mangle it differently from uint.
Just an idea...