alias using Complex!Double in module ... linker error??

james.p.leblanc james.p.leblanc at gmail.com
Wed Aug 4 05:55:50 UTC 2021


On Wednesday, 4 August 2021 at 01:10:15 UTC, Mike Parker wrote:
> On Tuesday, 3 August 2021 at 21:40:09 UTC, james.p.leblanc 
> wrote:
>> [...]
>
> The alias to Complex!double is a template instantiation. A 
> template instantiation creates a symbol that needs to be 
> linked. So you need to compile my_module.d along with my_main.d.
>
> ```
> dmd my_main.d my_module.d
> ```
>
> Or alternatively:
>
> ```
> dmd -i my_main.d
> ```
>
> double is a built-in type, so that alias doesn't create any 
> symbols that need linking.
>
> An alias in and of itself is a compile-time-only construct, but 
> the symbols you assign it might require linking something.

Mike,

Aha... that makes sense now!

Thanks kindly for helping me understand what was happening with 
your
informative reply.  The fact of template instantiations and 
symbols
had escaped me completely.

I appreciate it.

Best Regards,
James


More information about the Digitalmars-d-learn mailing list