On Monday, 22 May 2017 at 13:15:31 UTC, Adam D. Ruppe wrote:
On Monday, 22 May 2017 at 13:11:15 UTC, Andrew Edwards wrote:
#ifndef THING
#define THING
#endif
This kind of thing is most commonly used in include guards
https://en.wikipedia.org/wiki/Include_guard#Use_of_.23include_guards
Have a basic understanding. In the specific case i'm looking at,
they are not used as include guards though.
You can usually just strip that out in D, since the module
system already just works if imported twice.
Makes sense.
#ifndef SOME_THING
#define SOME_THING THING *
#endif
Is this equivalent to:
alias thing = void;
alias someThing = thing*;
I'd have to see that in context though to see why they are
doing it... it is probably some kind of platform specific type
definitions.
Specific context at the following links:
https://github.com/glfw/glfw/blob/66ff4aae89572419bb130c5613798e34d7521fc7/deps/glad/glad.h#L24-L48
https://github.com/glfw/glfw/blob/66ff4aae89572419bb130c5613798e34d7521fc7/deps/glad/glad.h#L57-L81
https://github.com/glfw/glfw/blob/66ff4aae89572419bb130c5613798e34d7521fc7/deps/glad/glad.h#L88-L124
Thanks,
Andrew