Compiling with unknown class gives no error
Duarte
xporg.roso at gmail.com
Mon Mar 17 23:56:09 PDT 2014
On Monday, 17 March 2014 at 22:44:00 UTC, bearophile wrote:
> Duarte:
>
>> Compiling this with dmd/ldc will procude no error whatsoever,
>> not even a warning (with -w/-wi enabled). It will only trigger
>> a compile error if the operator is called at some point.
>>
>> How come? Obviously if the class does not exist the compiler
>> shouldn't be able to determine the return value of the
>> overloaded operator.
>
> Similar questions are better asked in D.learn.
>
> opBinary is not a method, it's a method template. So until you
> instantiate it, it doesn't actually exist. For some reasons for
> templates like C++/D ones you can't perform a full analysis of
> un-instantiated templated code. Time ago some people have asked
> for a partial analysis of template code, but Andrei was against
> it.
>
> Extra note: don't end D class definitions (and structs/enums)
> with a semicolon.
>
> Bye,
> bearophile
Fair enough. Thanks dude!
More information about the digitalmars-d-ldc
mailing list