On Wed, Jul 14, 2004 at 01:40:23AM +0900, Jochen Immend?rfer wrote:
> Hi,
> 
> I am trying to compile qtruby. Unfortunally it failed with the following error 
> message:
> 
> Qt.cpp: In function `VALUE initialize_qt(int, VALUE*, VALUE)':
> Qt.cpp:1145: error: ISO C++ forbids cast to non-reference type used as lvalue
> make[5]: *** [Qt.lo] Fehler 1
> 

I'm not a qtruby developer and I don't have Qt 3.2, so I can't check any
of this, but it looks like a bug.

Lines 1144-1145 read:

  smokeruby_object * p = 0;
    Data_Get_Struct(temp_obj, smokeruby_object, (void *) p);

And this expands to:

  smokeruby_object * p = 0;
  Check_Type(temp_obj, T_DATA); (void *) p = (smokeruby_object*)DATA_PTR(temp_obj);

Which is not valid C++ (older versions of g++ accept it, but neither
como nor g++ 3.4 does).

There's really no good reason I can think of for the cast to void*,
anyway.  You should submit a bug report.

Paul