static opDispatch

Artur Skawina art.08.09 at gmail.com
Sun Jun 30 05:34:05 PDT 2013


On 06/30/13 12:36, David wrote:
> struct Bla {
>     static @property
> 	Bla opDispatch(string s)() const {
> 		pragma(msg, s);
> 		return Bla();
> 	}
> }
> 		
> void main() {
> 	Bla.abc;
> }
> 
> ---
> 
> abc
> /d675/f256.d(10): Error: no property 'abc' for type 'Bla'
> /d675/f256.d(10): Error: Bla is not an expression
> 
> ---
> 
> I guess static opDispatch does not exist? Any reasons why it doesn't
> exist or is it just a bug? It looks like a bug, since the pragma prints.
> Returning nothing, doesn't change anything btw.

Try removing the 'const' - static methods have no 'this'.

Error reporting for optional templated methods that exist, but fail
to instantiate, can be very misleading; calling such methods explicitly 
sometimes helps to identify the problem.

artur


More information about the Digitalmars-d-learn mailing list