http://d.puremagic.com/issues/show_bug.cgi?id=9088
Andrej Mitrovic <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] --- Comment #1 from Andrej Mitrovic <[email protected]> 2012-11-29 05:15:58 PST --- For functions: I think this might be the job of the compiler/linker. If there are multiple static function definitions that are identical they should be merged, there's no need for the user to do the job of the compiler/linker. As for template-shared variables, they are possible without bloating the global (module) scope by using templates, for example: template Wrap() { int globX; struct Foo(T) { alias globX x; } } alias Wrap!().Foo Foo; void main() { Foo!(int) f1; Foo!(float) f2; f1.x = 10; assert(f2.x == 10); } You could probably implement some kind of helper mixin that could implement this automatically. Here's the same trick with function templates: import std.stdio; template Wrap() { dchar[] table = ['a', 'b', 'c']; immutable val = 10; int foo(T)() if (is(T == char) || is(T == dchar) || is(T == wchar)) { writeln(&table); return 0; } } alias Wrap!().foo foo; void main() { alias foo!char fooChar; alias foo!dchar fooDChar; // both print the same address fooChar(); fooDChar(); } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
