How can I express the type of a function in D?

Steven Schveighoffer schveiguy at gmail.com
Wed Jan 30 15:47:15 UTC 2019


On 1/30/19 12:14 AM, Sobaya wrote:
> I want to get a mangled name of a D function by `core.demangle.mangle`, 
> but I'm in trouble because there are no ways to express a type of a 
> function, which is used for a template argument of `mangle`.
> 
> For example, it is wrong to use the type `int function(int,int)` to 
> express the type of `int add(int,int)`.
> Because it expresses the type of a function POINTER, not just a function.
> 
> The fuction name in a binary compiled this function is "_D3addFiiZi", 
> but `mangle!(int function(int,int))("add")` returns "_D3addPFiiZi", 
> which includes "P" meaning POINTER.
> 
> How can I get the former one?

Why not use add.mangleof?

-Steve


More information about the Digitalmars-d-learn mailing list