Boost logo

Boost :

From: Alexander Nasonov (alnsn_at_[hidden])
Date: 2006-04-02 16:21:41

Pavel Vozenilek wrote:
> 1. The documentation should really start with Rationale
> section and should contain complete examples.
> Examples written in this thread would be good start.

Since it is a small addition to type_traits I decided to follow
type_traits style. Rather then writing complete documentation
I wrote small pieces that can be easily integrated into type_traits

> 2. Includes should use
> #include <boost/config.hpp>

> 3. I got problems with Windows Intel 9.0:

Looks like it compiles in MS compatibility mode. I noticed some problems
with MS compiler. Have you tried MSVC or Intel with MS compatibility
switched off?

There is a status for some compilers at the begginning of

// Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for
// 80x86
// /Ze (enable extentions) promotes UIntEnum incorrectly to int.
// /Za (disable extentions) is totally broken.

I was suprised to see that many compilers have problems with enums.

> 4. Intel 7.0 seems to be right out,
> I was not able to compile any example.

I tested only Intel 8.1 for Linux on FreeBSD. It works fine.

> 5. Playing with BCB: I got some promising success
> but full port would require longer work.
> I can help here if it gets accepted into Boost.

I appreciate this.

> As an appetizer: all [::boost::] need to be converted
> into [boost::] (BCB doesn't like the leading ::)
> and there are some strange issues with namespaces;

> 6. In
> #if (defined(BOOST_MSVC) && (BOOST_MSVC == 1200)) \
> || (defined(BOOST_INTEL_CXX_VERSION) && defined(_MSC_VER) &&
> || (defined(__BORLANDC__) && (__BORLANDC__ == 0x600) && (_MSC_VER ==
> 1200))
> just all versions of BCB should be covered.
> 5.5, 5.6 and 5.8 do have the __intX thing.
> BCB version 0x600 doesn't exist yet.
> Similarly all Windows Intel compilers I know about have __intX
> as a separate type - the check <= 600 should be omitted too.

I copied this #if from <boost/type_traits/is_integral.hpp>
Have you noticed TODO nearby? It says:
// TODO: common macro for this #if. Or better yet, PP SEQ of non-standard types.

Thanks for comments,

Alexander Nasonov

Boost list run by bdawes at, gregod at, cpdaniel at, john at