On Friday, 1 August 2014 at 15:52:30 UTC, Martin Nowak wrote:
Well phobos as a library is precompiled, so the versions used
to compile phobos will be relevant, not the ones in client code.
For templated functions version identifier will "leak" from
client code into the library, because technically they are
instantiated by the client code.
could you elaborate please? Currently I use the version
statements in two template functions. I'm not sure why one would
brand this negatively as a leak into the library.
Also the version identifiers of client code determine which
declarations you see.
Relying on this would be a constant source of bugs.
could you elaborate please?
I did proof-of-concept yesterday using type tags and template
constraints to statically disable certain log levels.
It also has some drawbacks because LogLevel is no longer a
plain enum, but it's more appropriate than version identifiers.
http://forum.dlang.org/post/[email protected]
Thank you for taking the time, but I found several conceptional
problems with that POC. The worst being that if I make the
LogLevel inside the TestLogger anything other than a enum it
fails, as it is used in the template constraint. That would mean
the LogLevel is fixed at CT.