[Qt-interest] Weird compiler error with QString(QChar(value))

Duane Hebert spoo at flarn.com
Thu May 6 18:26:28 CEST 2010


"Stephen Chu" <stephen at ju-ju.com> wrote in message news:stephen-56F742.11370706052010 at nntp.trolltech.com...
> In article <hrul12$9l1$1 at eple.troll.no>,
> Nikos Chantziaras <realnc at arcor.de> wrote:
> 
>> On 05/06/2010 05:35 PM, Stephen Chu wrote:
>> > In article<201005052127.23761.thiago at kde.org>,
>> >   Thiago Macieira<thiago at kde.org>  wrote:
>> >
>> > Thanks for the explanation. I ran into the same problem just last night.
>> > Pulling my hairs out on this one.
>> >
>> > One question though. If that line of code actually declares a function,
>> > what does 'unicodeValue' in the declaration do? I thought a function
>> > declaration is something like:
>> >
>> >      QString s(QChar unicodeValue);
>> 
>> It's the same since you can put parentheses pretty much everywhere.  As 
>> I posted previously for example, you can define main() like this:
>> 
>>    int main( int(argc), char**(argv) )
>> 
>> and it's accepted by the compiler.  That means that these two function 
>> declarations:
>> 
>>    QString s(QChar unicodeValue);
>>    QString s(QChar(unicodeValue));
>> 
>> are equivalent.  IMHO that's wrong, but then again, I don't know what 
>> would break in the C++ standard if it would treat it as wrong.  But 
>> given that C++ allows you to use simple types (int, char, etc) as classes:
>> 
>>    int i = int(50); //'int' is not a class, but you can use it as one
>> 
>> it should bark at the above definition of main().
> 
> Got it. Thanks. I was pulling my hairs when something like:
> 
> QRectF   r(QRectF(aPixmap.rect()));
> 
> works but this doesn't:
> 
> QRectF   r(QRectF(aRect));
> 
> Learn another trick (or trap?). The compiler should at least put a more 
> informative warning on that line.

VS8 says 
: warning C4930: 'QRectF r(QRectF)': prototyped function not called (was a variable definition intended?)

But I agree, at least when QRectF is not a built in type that it should be able to parse this.



More information about the Qt-interest-old mailing list