[cfe-dev] Clang/C++ problem?
Bo Persson
bop at gmb.dk
Mon Jan 24 16:02:49 PST 2011
Marshall Clow wrote:
> Shouldn't this work?
> If it should work, should I write up a bug?
>
> $ cat junk.cpp
>> typedef int Foo_t;
>>
>> template <typename T>
>> T DoSomething ( T t) { return t; }
>>
>> int main ( int argc, char *argv [] ) {
>> int foo = 23;
>> DoSomething ( static_cast<unsigned int>(foo));
>> DoSomething ( static_cast<unsigned Foo_t>(foo));
>> return 0;
>> }
>>
>
> $ g++ junk.cpp
>
> $ clang junk.cpp
>> junk.cpp:9:36: error: expected '>'
>> DoSomething ( static_cast<unsigned Foo_t>(foo));
>> ^
>> >
>> junk.cpp:9:27: note: to match this '<'
>> DoSomething ( static_cast<unsigned Foo_t>(foo));
>> ^
>> 1 error generated.
>>
>
No, this shouldn't work. Some types, like 'unsigned int' are formed by
two keywords, but that doesn't mean you can use one keyword first and
add the other one later.
Bo Persson
More information about the cfe-dev
mailing list