struct opCall error messages
Jacob Carlborg
doob at me.com
Tue Jul 27 15:20:20 PDT 2010
On 2010-07-26 14:27, Rory Mcguire wrote:
> Hi,
>
> I'm not sure this is in bugzilla, I tried finding something mentioning it
> but coudn't.
>
> Compiling the below code results in the dmd compiler printing:
> struct_bad_error.d(8): Error: 'this' is only defined in non-static member
> functions, not inner
>
> ====================
> struct S {
> S opCall() {S s; return s;}
> }
> void main() {
> S s;
> //s = S(); // decent error message: "struct_bad_error.d(6):
> // Error: need 'this' to access member opCall"
> void inner() {
> s = S();
> }
> }
> =====================
>
> What to do? Also found that having an empty () after the struct name is not
> the best error message: "struct_bad_error.d(5): Error: struct
> struct_bad_error.S() is used as a type"
>
> Surely it could tell me I need to put an Identifier in the ()
>
> -Rory
Perhaps you want a static opCall ?
S foo;
foo(); // calls opCall
S(); // calls static opCall
--
/Jacob Carlborg
More information about the Digitalmars-d-learn
mailing list