Compiling with unknown class gives no error
    bearophile 
    bearophileHUGS at lycos.com
       
    Mon Mar 17 15:43:59 PDT 2014
    
    
  
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
    
    
More information about the digitalmars-d-ldc
mailing list