Boost logo

Boost Users :

From: Joaquín Mª López Muñoz (joaquin_at_[hidden])
Date: 2006-03-17 02:36:41


"Wu Yinghui, Freddie" ha escrito:

> Joaquín M López Muñoz ha escrito:
> > * C4312/C4311, conversions between differently sized types: this
> > is a case of /Wp64 being too dumb in its analysis of the type
> > boost::multi_index::detail::uintptr_type; this type is defined with
> > some metaprogramming machinery to be some integral type
> > with the same size as void*. So, it is unsigned int in Win32 and
> > unsigned long long in Win64. But /Wp64 sees it defined as
> > unsigned int, hence the warning. It is as if you had:
> >
> > #ifdef _WIN64
> > typedef unsigned int integral_type;
> > #else
> > typedef unsigned long long integral_type;
> > #endif
> > void *p;
> > integral_type x=(integral_type)p;
> >
> > /Wp64 is not able to see that integral_type will be
> > defined as unsigned long long in Win64, and emits a C4311.
>
> Thanks for your helpful explanation. Since this types of warnings flood
> the compiler output, which very difficult for us to notice other more
> valuable warnings. Guess we'll need to figure out some way to "hide" the
> stupid compiler behaviour?

Can't you use #pragma warning(disable:4311) etc.? If I'm right,
you'll only need the pragmas when using /Wp64, not when actually
compiling in Win64 mode.

Best,

Joaquín M López Muñoz
Telefónica, Inevstigación y Desarrollo

>
>
> > * Complains about some internal node classes not being
> > constructable or about their automatic default constructors
> > being impossible to generate. I don't see what this has to do
> > with 64-bit portability; in any case, the compiler is right about
> > the analysis, but not about the consequences: these classes
> > are in effect never default constructed, their lifetime being
> > managed through an allocator interface. This is just an
> > overzealous warning.
>
> Hmm... In this case, I guess I'd just try to add some default
> constructors for these classes without implementing them. That way, I
> can at least get away with this type of warnings.
>
> > So, Boost.MultiIndex must work in Win64, the best way to
> > check this out is to actually try.
>
> I do not have the 64-bit machine with me yet. But I'll report back later
> once I actually have the chance to try it out.
>
> > As for Boost.Format, I cannot say cause I'm not the maintainer,
> > but in any case it seems to work on other 64-bit environments
> > as per the regression tests, and potential 64-bit problems
> > should be easy to tackle.
>
> Thanks for your insights!
>
> > Joaqu?n M L?pez Mu?oz
> > Telef?nica, Investigaci?n y Desarrollo
> >
> Cheers,
>
> Freddie
>
> --
> Wu Yinghui, Freddie
> Research & Development
> Software Engineer
>
> Volume Interactions Pte Ltd
> 1 Kim Seng Promenade, #12-01
> Great World City East Tower
> Singapore 237994
> Tel: +65 62226962 (Ext 216)
> Fax: +65 62226215
> Email: yhwu_at_[hidden]
> URL: http://www.volumeinteractions.com
>
> Important: This message is intended for the recipient(s) addressed
> above. It contains privileged and confidential information. If you are
> not the intended recipient, please notify the sender immediately by
> replying to this message and then delete it from your system. You must
> not read, copy, use, or disseminate this communication in any form.
> Thank you.
>
> ------------------------------------------------------------------------
> Name: signature.asc
> signature.asc Type: application/pgp-signature
> Description: OpenPGP digital signature
>
> ------------------------------------------------------------------------
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net