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.

Reply via email to