Boost logo

Boost Users :

From: Wu Yinghui, Freddie (yhwu_at_[hidden])
Date: 2006-03-16 20:23:31


> Hello Freddie,
>
> As for Boost.MultiIndex, I can confirm the lib does work in 64-bit
> environments (for instance, Linux PPC64, Tru64) and must also work
> for Win64, although I've never had actual reports about this latter
> platform (if you've got access to Win64, you might want to try and
> tell back.) With respect to /Wp64 warnings, they are of two
> kinds:
>
> * 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?

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




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