dmd 1.070 and 2.055 release
Adam Burton
adz21c at gmail.com
Fri Sep 9 10:38:09 PDT 2011
Andrej Mitrovic wrote:
> On 9/8/11, zeljkog <zeljkog at private.com> wrote:
>> alias toUTFz!(const(wchar)*, string) toUTF16z;
>> alias toUTFz!(const(wchar)*, wstring) toUTF16z;
>
> I think one difference (if I'm right) is that using a non-templated
> function such as this:
>
> const(wchar)* toUTF16z(string s)
> {
> return toUTFz!(const(wchar)*)(s);
> }
>
> can enable me to pre-compile a module to an object file (call it
> unicode.obj), while using an alias the object code for toUTF16z has to
> be generated when the client module (main.d) is compiled.
Did some a simple test [1] and looks like the alias alone should work. I
think the rule is the template code is included if it is instantiated and
aliasing the template seems to be classed as instantiating it.
[1] I am not great with linkers + asm so just incase I've made an obvious
mistake...
I created a very basic template function (tempFunction) then compiled it as
a lib with and without an alias. I extracted the object files from the libs
using ar and the one with the alias contained an additional object file with
the mangled name of my function
(_D4test1d22__T12tempFunctionTAyaZ12tempFunctionFAyaZv:).
More information about the Digitalmars-d-announce
mailing list