On Sunday, 26 October 2014 at 23:58:14 UTC, Martin Nowak wrote:
On 10/27/2014 12:45 AM, Martin Nowak wrote:
If you allow to define a Logger with a LogLevel know at compile time and you statically pass the LogLevel of your message to the logging function you can elide that call. For anything else you need a runtime check.

You are trying to globally define a LogLevel through the version identifier but that collides with D's separate compilation. So you cannot enable logging in a library that was compiled with StdLoggerDisableLogging. And vice versa you cannot statically disable logging in a library compiled without StdLoggerDisableLogging.

Now if you use StdLoggerDisableLogging in your program the effect on the library will depend on whether or not you're calling a templated function or if the compiler inlined certain library function into your program.

It is a good think then that the *DisableLogging versions are only used inside a template that is used inside a templates. Though version statements attached to a phobos compilation should only have impact on the unittest of phobos.

Secondly, why would phobos be shipped with certain LogLevel disabled.

Reply via email to