alias symbol name
Radu
void at null.pt
Tue Jun 26 11:28:11 UTC 2018
On Tuesday, 26 June 2018 at 10:19:44 UTC, Jonathan M Davis wrote:
> On Tuesday, June 26, 2018 09:47:44 Radu via Digitalmars-d-learn
> wrote:
>> On Tuesday, 26 June 2018 at 09:24:15 UTC, Stefan Koch wrote:
>> > On Tuesday, 26 June 2018 at 09:14:11 UTC, Radu wrote:
>> >> Consider this https://run.dlang.io/is/HyY2qG
>> >>
>> >> ---
>> >> void main()
>> >> {
>> >>
>> >> import std.traits;
>> >> size_t s;
>> >>
>> >> pragma(msg, typeof(s).stringof);
>> >> pragma(msg, mangledName!(typeof(s)));
>> >> pragma(msg, mangledName!s);
>> >>
>> >> }
>> >> ---
>> >>
>> >> It outputs:
>> >> ---
>> >> ulong
>> >> m
>> >> _D9onlineapp4mainFZ1sm
>> >> ---
>> >>
>> >> I'm looking for a way to get the `s` type symbol name
>> >> (size_t)
>> >> not whatever the alias is pointing to (ulong in this case).
>> >>
>> >> Is there a way to obtain the alias symbol name?
>> >
>> > __traits(identifier, sym);
>>
>> Him, that will print the symbol name, in my case `s`.
>>
>> To cut to chase - I'm looking something that will print
>> `size_t` for the symbol `s`.
>
> I'm pretty sure that that's impossible. As I understand it, the
> compiler basically just replaces aliases with what they refer
> to and doesn't care what the original type was. And they
> _definitely_ don't affect mangling. If you're looking to treat
> an alias as anything different from what it refers to, you're
> going to be disappointed.
>
> - Jonathan M Davis
Ha! :) yeah I was pretty sure this will not work.
I'm looking to generate some custom wrappers and knowing when
something is really `size_t` is important, I have a backup plan,
but having a compiler trait to get an alias symbol name would be
great. Maybe this is worthy an enhancement request?
More information about the Digitalmars-d-learn
mailing list