plans for interfacing to C++
sclytrack
sclytrack at fake.com
Tue Jan 10 02:55:41 PST 2012
On 01/10/2012 10:28 AM, deadalnix wrote:
> Le 09/01/2012 19:19, Trass3r a écrit :
>> On Monday, 9 January 2012 at 18:04:58 UTC, Michel Fortin wrote:
>>>> Hmm another difficulty is how to switch between mangling schemes.
>>>
>>> One thing that could be done is instead of the namespace argument,
>>> have a mangled name argument. Then use CTFE to build the mangled name
>>> (if you want to).
>>>
>>> This would also solve the problem we have on OS X where some C
>>> functions use a mangled name with a '$' in them thanks to the use of
>>> some GCC attribute in the system headers.
>>>
>>> Or maybe it should be a pragma instead.
>>
>> Interesting idea. But how to do it properly?
>> A namespace or a class may have lots of functions and I really wouldn't
>> want to be forced to write pragma(mangledName, gccmangle("Bla", ...))
>> before every declaration.
>
> @mangled("encrypted klingon here") void foo();
>
> Where encrypted klingon can be generated using CTFE.
It's like the vapi files. (Vala)
//encrypted klingon here.
[CCode (cname = "gtk_cell_area_class_find_cell_property")]
public class unowned GLib.ParamSpec find_cell_property (string
property_name);
//alias here
With the alias in D you can use the original.
More information about the Digitalmars-d
mailing list