Why can't functions and struct types have the same name?
Daniel Kozak via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Jan 26 03:30:00 PST 2015
On Monday, 26 January 2015 at 11:15:26 UTC, Joakim wrote:
> Right now, any attempt to have symbols with the same name
> errors out, regardless of how they're used. This caused a
> problem for me because I'm trying to use a third-party C
> library that defines a struct type called "socket" and my code
> calls that library and some networking modules from druntime.
> Since core.sys.posix.sys.socket happens to contain a function
> called socket also, dmd gets confused when I try to create a
> socket* and use it in my code.
>
> I would think it'd know I can't do that with a function name.
> Is such symbol disambiguation a convenience that just isn't
> implemented yet or something that can't/won't be done?
>
> Right now, I had to go through and selectively import all 14
> symbols I needed from the 3 druntime modules that publicly
> import core.sys.posix.sys.socket, so that the function socket
> isn't imported. Seems like a pain that can be mitigated by a
> smarter compiler.
You can use static import, or alias to solve this issue
More information about the Digitalmars-d-learn
mailing list