Boost logo

Boost Users :

From: Markus Schöpflin (markus.schoepflin_at_[hidden])
Date: 2005-04-20 08:00:32


Mauricio Gomes wrote:

> Do the code still needs a lot of workarounds for compilers problems or
> the latest versions of the compilers have good compliance ?
> 1.32 report shows a good situation but I don't know if it reflects good
> compilers compliance or boost developers heroic efforts to workaround
> problems.

Not a direct answer to your question, but... you have made me curious. I
hacked together something which counts the occurences of the various
BOOST_WORKAROUND macros in use. Attached is the result.

This is far from perfect, but as you can see the majority of workaround are
either for gcc < 3 of for the various versions of MSVC.

Markus

257 BOOST_WORKAROUND(__GNUC__,<3)
133 BOOST_WORKAROUND(BOOST_MSVC,<=1300)
112 BOOST_WORKAROUND(BOOST_MSVC,<1300)
73 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x564))
63 BOOST_WORKAROUND(BOOST_MSVC,<=1200)
50 BOOST_WORKAROUND(__BORLANDC__,<0x600)
47 BOOST_WORKAROUND(__IBMCPP__,<=600)
36 BOOST_WORKAROUND(BOOST_MSVC,==1200)
24 BOOST_WORKAROUND(__MWERKS__,BOOST_TESTED_AT(0x3003))
22 BOOST_WORKAROUND(__MWERKS__,<=0x3003)
22 BOOST_WORKAROUND(BOOST_MSVC,==1300)
22 BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB,==1)
21 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x551))
18 BOOST_WORKAROUND(__GNUC__,==2)
16 BOOST_WORKAROUND(__DMC__,BOOST_TESTED_AT(0x840))
16 BOOST_WORKAROUND(__BORLANDC__,<=0x551)
14 BOOST_WORKAROUND(__MWERKS__,<=0x2407)
13 BOOST_WORKAROUND(__MWERKS__,BOOST_TESTED_AT(0x3201)))
13 BOOST_WORKAROUND(__MWERKS__,>0x3100)
12 BOOST_WORKAROUND(BOOST_MSVC,==1310)
12 BOOST_WORKAROUND(BOOST_MSVC,<1310)
11 BOOST_WORKAROUND(__IBMCPP__,BOOST_TESTED_AT(600))
11 BOOST_WORKAROUND(__GNUC__,<3)&&!defined(__SGI_STL_PORT)&&!defined(_STLPORT_VERSION)
10 BOOST_WORKAROUND(__SUNPRO_CC,BOOST_TESTED_AT(0x530))
9 BOOST_WORKAROUND(__BORLANDC__,<0x560)
9 BOOST_WORKAROUND(BOOST_MSVC,BOOST_TESTED_AT(1400))
8 BOOST_WORKAROUND(_RWSTD_VER,BOOST_TESTED_AT(20101))
8 BOOST_WORKAROUND(__MWERKS__,BOOST_TESTED_AT(0x3202))
8 BOOST_WORKAROUND(__BORLANDC__,<=0x0551)
7 BOOST_WORKAROUND(_MSC_FULL_VER,BOOST_TESTED_AT(13102292))
7 BOOST_WORKAROUND(__HP_aCC,BOOST_TESTED_AT(55500))
7 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x570)))
7 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x561))
7 BOOST_WORKAROUND(__BORLANDC__,<=0x564)
7 BOOST_WORKAROUND(BOOST_MSVC,>=1400)
6 BOOST_WORKAROUND(__GLIBCPP__,==20020514)
6 BOOST_WORKAROUND(__EDG_VERSION__,<=238)
6 BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION,<=700)
5 BOOST_WORKAROUND(__SUNPRO_CC,<=0x530)
5 BOOST_WORKAROUND(__GNUC__,<=2)
5 BOOST_WORKAROUND(__EDG_VERSION__,<=245)
5 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x0551))
5 BOOST_WORKAROUND(__BORLANDC__,<=0x570)
4 BOOST_WORKAROUND(__SUNPRO_CC,==0x530)
4 BOOST_WORKAROUND(__IBMCPP__,==600)
4 BOOST_WORKAROUND(__HP_aCC,BOOST_TESTED_AT(53800))
4 BOOST_WORKAROUND(__GNUC__,==4)
4 BOOST_WORKAROUND(__GNUC__,==3)
4 BOOST_WORKAROUND(__EDG_VERSION__,<=243)
4 BOOST_WORKAROUND(BOOST_MSVC,>1300)
4 BOOST_WORKAROUND(BOOST_MPL_CFG_GCC,BOOST_TESTED_AT(0x0304))
3 BOOST_WORKAROUND(__IBMCPP__,BOOST_TESTED_AT(502))
3 BOOST_WORKAROUND(__EDG_VERSION__,<=244)&&!defined(BOOST_INTEL_CXX_VERSION)
3 BOOST_WORKAROUND(__DECCXX_VER,BOOST_TESTED_AT(60590040))
3 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x0564))
3 BOOST_WORKAROUND(BOOST_MSVC,BOOST_TESTED_AT(1310))
3 BOOST_WORKAROUND(BOOST_MSVC,<=1310)
3 BOOST_WORKAROUND(BOOST_MPL_CFG_GCC,BOOST_TESTED_AT(0x0302))
3 BOOST_WORKAROUND(BOOST_INTEL_WIN,BOOST_TESTED_AT(800))
3 BOOST_WORKAROUND(BOOST_INTEL,<=700)
3 BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB,<306)
2 BOOST_WORKAROUND(symbol,test)
2 BOOST_WORKAROUND(_STLPORT_VERSION,<0x461)
2 BOOST_WORKAROUND(_STLPORT_VERSION,<=0x450)
2 BOOST_WORKAROUND(_RWSTD_VER,BOOST_TESTED_AT(0x20101))
2 BOOST_WORKAROUND(__MWERKS__,BOOST_TESTED_AT(0x3205))
2 BOOST_WORKAROUND(__MWERKS__,<=0x3001)
2 BOOST_WORKAROUND(_MSC_VER,>=1200)
2 BOOST_WORKAROUND(__LIBCOMO_VERSION__,BOOST_TESTED_AT(29))
2 BOOST_WORKAROUND(__GNUC_PATCHLEVEL__,==3))
2 BOOST_WORKAROUND(__GNUC_PATCHLEVEL__,==1)
2 BOOST_WORKAROUND(__GNUC_MINOR__,==3)
2 BOOST_WORKAROUND(__GNUC_MINOR__,<=1))
2 BOOST_WORKAROUND(__GNUC__,==2)&&defined(__STL_CONFIG_H)
2 BOOST_WORKAROUND(__GNUC__)
2 BOOST_WORKAROUND(__EDG_VERSION__,<=238))
2 BOOST_WORKAROUND(__EDG__,BOOST_TESTED_AT(302))
2 BOOST_WORKAROUND(__DECCXX_VER,BOOST_TESTED_AT(60590042))
2 BOOST_WORKAROUND(__DECCXX_VER,BOOST_TESTED_AT(60590041))
2 BOOST_WORKAROUND(_CRAYC,!=0)
2 BOOST_WORKAROUND(_COMPILER_VERSION,BOOST_TESTED_AT(741)))
2 BOOST_WORKAROUND(__COMO_VERSION__,BOOST_TESTED_AT(4303))
2 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x570))
2 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x531))
2 BOOST_WORKAROUND(__BORLANDC__,<0x600)&&!defined(BOOST_TT_TEST_MS_FUNC_SIGS)
2 BOOST_WORKAROUND(__BORLANDC__,<=0x600)
2 BOOST_WORKAROUND(BOOST_MSVC,&lt;=1300)
2 BOOST_WORKAROUND(BOOST_MSVC,BOOST_TESTED_AT(1300))
2 BOOST_WORKAROUND(BOOST_MSVC,==1400)
2 BOOST_WORKAROUND(BOOST_MSVC,>=1310))
2 BOOST_WORKAROUND(BOOST_MSVC,<1310))
2 BOOST_WORKAROUND(BOOST_MSVC,<=1300)||defined(__MWERKS__)
2 BOOST_WORKAROUND(BOOST_MSVC,<1300)||(defined(_MSC_EXTENSIONS)&&BOOST_MSVC<1310)
2 BOOST_WORKAROUND(BOOST_MSVC,<=1200&&__SGI_STL_PORT)
2 BOOST_WORKAROUND(BOOST_MSVC,<=0x1701)
2 BOOST_WORKAROUND(BOOST_MSVC,<=0x1700)
2 BOOST_WORKAROUND(BOOST_MSVC)
2 BOOST_WORKAROUND(BOOST_MPL_CFG_GCC,>=0x0300)
2 BOOST_WORKAROUND(BOOST_MPL_CFG_GCC,<=0x0295)
2 BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION,BOOST_TESTED_AT(810))
2 BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION,<=800)
2 BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB,<310)
2 BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB,<=1)
1 BOOST_WORKAROUND(__SUNPRO_CC,BOOST_TESTED_AT(0x560))
1 BOOST_WORKAROUND(__SUNPRO_CC,BOOST_TESTED_AT(0x540))
1 BOOST_WORKAROUND(_STLPORT_VERSION,BOOST_TESTED_AT(0x452))
1 BOOST_WORKAROUND(_STLPORT_VERSION,>0x450)
1 BOOST_WORKAROUND(__SGI_STL_PORT,<0x500)
1 BOOST_WORKAROUND(__MWERKS__,BOOST_TESTED_AT(0x3002))&&BOOST_PP_ITERATION()
1 BOOST_WORKAROUND(__MWERKS__,<0x3202)
1 BOOST_WORKAROUND(__MWERKS__,<=0x3201)
1 BOOST_WORKAROUND(__MWERKS__,<0x3200))
1 BOOST_WORKAROUND(__MWERKS__,<0x3200)
1 BOOST_WORKAROUND(__MWERKS__,<=0x3004))
1 BOOST_WORKAROUND(__MWERKS__,<=0x3004)
1 BOOST_WORKAROUND(__MWERKS__,<0x3003)
1 BOOST_WORKAROUND(__MWERKS__,<0x3001)
1 BOOST_WORKAROUND(__MWERKS__,>=0x3000)&&defined(__INTEL__))
1 BOOST_WORKAROUND(__MWERKS__,<=0x3000)
1 BOOST_WORKAROUND(_MSC_VER,BOOST_TESTED_AT(1300))
1 BOOST_WORKAROUND(_MSC_VER,<1300)&&!defined(_STLP_VERSION)
1 BOOST_WORKAROUND(_MSC_VER,<=1300)
1 BOOST_WORKAROUND(_MSC_VER,<=1200)
1 BOOST_WORKAROUND(_MSC_FULL_VER,BOOST_TESTED_AT(13103077))
1 BOOST_WORKAROUND(_MSC_FULL_VER,BOOST_TESTED_AT(13102292)&&BOOST_MSVC>1300)
1 BOOST_WORKAROUND(_MSC_FULL_VER,>140040607)
1 BOOST_WORKAROUND(_MSC_FULL_VER,>=13102292)
1 BOOST_WORKAROUND(__INTEL_COMPILER,<=800)
1 BOOST_WORKAROUND(__ICL,BOOST_TESTED_AT(700))
1 BOOST_WORKAROUND(__HP_aCC,<=33500))
1 BOOST_WORKAROUND(__GNUC_MINOR__,BOOST_TESTED_AT(95))
1 BOOST_WORKAROUND(__GNUC_MINOR__,<4)&&!defined(__EDG_VERSION__)
1 BOOST_WORKAROUND(__GNUC_MINOR__,<3))
1 BOOST_WORKAROUND(__GNUC__,BOOST_TESTED_AT(3))
1 BOOST_WORKAROUND(__GNUC__,BOOST_TESTED_AT(2))
1 BOOST_WORKAROUND(__GNUC__,==3)&&(__GNUC_MINOR__<4)
1 BOOST_WORKAROUND(__GNUC__,<3)&&defined(__STL_CONFIG_H))
1 BOOST_WORKAROUND(__GNUC__,<3)&&!defined(__SGI_STL_PORT)&&!defined(_STLPORT_VERSION))
1 BOOST_WORKAROUND(__GNUC__,<3))
1 BOOST_WORKAROUND(__GNUC__,<=3)
1 BOOST_WORKAROUND(__GNUC__,==2&&__GNUC_MINOR__==95)
1 BOOST_WORKAROUND(__GNUC__,<=2))
1 BOOST_WORKAROUND(__EDG_VERSION__,BOOST_TESTED_AT(300))
1 BOOST_WORKAROUND(__EDG_VERSION__,<300)
1 BOOST_WORKAROUND(__EDG_VERSION__,<=300)
1 BOOST_WORKAROUND(__EDG_VERSION__,==245)
1 BOOST_WORKAROUND(__EDG_VERSION__,==238)
1 BOOST_WORKAROUND(__DECCXX_VER,<=60590041)
1 BOOST_WORKAROUND(_CPPLIB_VER,<=310)
1 BOOST_WORKAROUND(_COMPILER_VERSION,BOOST_TESTED_AT(730)))
1 BOOST_WORKAROUND(__COMO__,BOOST_TESTED_AT(4303))
1 BOOST_WORKAROUND(__COMO__,<=0x433)
1 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x600))
1 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x564)))
1 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x0561))
1 BOOST_WORKAROUND(__BORLANDC__,<0x600))
1 BOOST_WORKAROUND(__BORLANDC__,<0x561)
1 BOOST_WORKAROUND(__BORLANDC__,>=0x560)
1 BOOST_WORKAROUND(__BORLANDC__,<=0x550)
1 BOOST_WORKAROUND(__BORLANDC__,<0x0600)
1 BOOST_WORKAROUND(BOOST_RWSTD_VER,BOOST_TESTED_AT(0x20101)))
1 BOOST_WORKAROUND(BOOST_RWSTD_VER,BOOST_TESTED_AT(0x20101))
1 BOOST_WORKAROUND(BOOST_MSVC,BOOST_TESTED_AT(1301))
1 BOOST_WORKAROUND(BOOST_MSVC,==1310))
1 BOOST_WORKAROUND(BOOST_MSVC,<=1301)&&!defined(NDEBUG)
1 BOOST_WORKAROUND(BOOST_MSVC_,<=1200)&&!(defined(__ICL)&&defined(_MSC_VER)&&(_MSC_VER==1200))
1 BOOST_WORKAROUND(BOOST_MSVC,!=1200)
1 BOOST_WORKAROUND(BOOST_IOSTREAMS_GCC,BOOST_TESTED_AT(400))
1 BOOST_WORKAROUND(BOOST_IOSTREAMS_GCC,<=295)
1 BOOST_WORKAROUND(BOOST_INTEL_WIN,<=900)
1 BOOST_WORKAROUND(BOOST_INTEL_WIN,==710)
1 BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION,<=700)&&defined(_MSC_VER))
1 BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION,<=700))
1 BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION,!=0)&&defined(_MSC_VER)
1 BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB,BOOST_TESTED_AT(313))
1 BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB,BOOST_TESTED_AT(310)))
1 BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB,<=310)
1 BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB,==1)&&!defined(__SGI_STL_PORT)


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