0x12345678 is signed. 
The rule for hexadecimal literals is int, unsigned int, long int, unsigned 
long int, long long int, unsigned long long int according to 2.14.2 in the 
Standard.
As 0x12345678 fits into an int it is an int and no implicit conversion 
happens.

Carsten


On Thursday, September 20, 2012 at 6:57:02 AM UTC-7, Marshall Clow wrote:

> On Sep 17, 2012, at 5:35 PM, Joseph Galbraith <[email protected] 
> <javascript:>> wrote: 
>
> > Building wake.cpp with clang and -std=c++11 -stdlib=libc++ generates 
> errors do narrowing.  I believe the following patch is the right way to fix 
> these.  Any chance of getting this applied (or something else that makes it 
> build out of the box) ? 
>
> This patch bothers me. 
> I (think I) understand the problem, and the rationale for the fix. 
>
> But there's some subversion of the type system going on here, and it might 
> be better to fix that, rather than continue it. 
>
> To summarize: 
>         int arr [] = { 
>                 0x12345678, 
>                 0x89ABCFEF 
>                 }; 
>
> Both of the values in the array are actually unsigned, and have to be 
> (implicitly) converted to int. 
> When compiling for c++11, clang (rightly) complains that 0x89ABCFEF is 
> bigger than the maximum number representable by an int. 
>
> Changing the type of the array to "unsigned int" (or just unsigned) 
> removes the compile-time error - but does it change the algorithm? 
>
>
> -- Marshall 
>
> Marshall Clow     Idio Software   <mailto:[email protected] <javascript:>> 
>
>
> A.D. 1517: Martin Luther nails his 95 Theses to the church door and is 
> promptly moderated down to (-1, Flamebait). 
>         -- Yu Suzuki 
>
>

-- 
-- 
You received this message because you are subscribed to the "Crypto++ Users" 
Google Group.
To unsubscribe, send an email to [email protected].
More information about Crypto++ and this group is available at 
http://www.cryptopp.com.
--- 
You received this message because you are subscribed to the Google Groups 
"Crypto++ Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to