deprecated conversion from string constant to 'char *'

Derek Atkins warlord@MIT.EDU
Tue Feb 6 23:10:00 GMT 2007


Quoting Ian Lance Taylor <iant@google.com>:

> Derek Atkins <warlord@MIT.EDU> writes:
>
>> typedef char* PDFFileName;
>> typedef const char* PDFFileNameConst;
>>
>> class Foo
>> {
>> public:
>>   // If you change this to PDFFileNameConst then the warning goes away
>>   static int Blah(const PDFFileName name);
>> };
>>
>> int do_test()
>> {
>>   return Foo::Blah("bzz");
>> }
>
> This is expected behaviour.  "const PDFFileName" is not "const char*",
> it is "char* const".

I certainly wouldn't call this "expected"..

But with the expanation I at least understand why it's happening.
I guess that means if you typedef there's no way to actually
get the "const char*", which perhaps is a bug in the language definition.

Regardless, it IS annoying.

> Ian

-derek

-- 
       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL: http://web.mit.edu/warlord/    PP-ASEL-IA     N1NWH
       warlord@MIT.EDU                        PGP key available



More information about the Gcc-help mailing list