digitalmars.D.learn - Why are const strings used in templates for compile time found in exe
The following code http://dpaste.dzfl.pl/64025e0a when compiled, has all the static and const char[] strings used only for compile time inside the executable. How to prevent this? specifically I'm talking about static const char[] __ClassNameFix = "_A!("; static const char[] __NestLevelFix = "_NestLevel"; and all the mixin strings from the templates. They all show up in the executable but are only used for static compilation. (release build with no debug info)
Dec 15 2012
On Saturday, 15 December 2012 at 13:08:01 UTC, js.mdnq wrote:The following code http://dpaste.dzfl.pl/64025e0a when compiled, has all the static and const char[] strings used only for compile time inside the executable. How to prevent this? specifically I'm talking about static const char[] __ClassNameFix = "_A!("; static const char[] __NestLevelFix = "_NestLevel"; and all the mixin strings from the templates. They all show up in the executable but are only used for static compilation. (release build with no debug info)enum string __ClassNameFix = "_A!(";
Dec 15 2012
On Saturday, 15 December 2012 at 13:16:17 UTC, anonymous wrote:On Saturday, 15 December 2012 at 13:08:01 UTC, js.mdnq wrote:That works when marking the template static! Thanks.The following code http://dpaste.dzfl.pl/64025e0a when compiled, has all the static and const char[] strings used only for compile time inside the executable. How to prevent this? specifically I'm talking about static const char[] __ClassNameFix = "_A!("; static const char[] __NestLevelFix = "_NestLevel"; and all the mixin strings from the templates. They all show up in the executable but are only used for static compilation. (release build with no debug info)enum string __ClassNameFix = "_A!(";
Dec 15 2012