[cfe-dev] Clang/C++ problem?

Steven Watanabe watanabesj at gmail.com
Mon Jan 24 13:33:04 PST 2011


AMDG

On 1/24/2011 1:08 PM, Marshall Clow wrote:
> Shouldn't this work?

My gut feel reaction is that it shouldn't,
but I haven't actually checked the standard.

> 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;
>>      }
>>
>

What about something simpler?
Does

typedef int Foo_t;
typedef unsigned Foo_t uFoo_t;

work?

> $ 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.
>>

In Christ,
Steven Watanabe



More information about the cfe-dev mailing list