
On Sat, 21 Jan 2006 15:24:42 +0100, Tobias Schwinger <tschwinger@neoscientists.org> wrote:
AlisdairM wrote:
I am far from a preprocessor expert though, and wonder what other tests I should look at before pushing this update?
Well, I would not call myself an expert either and I don't know if this post should affect your update plans. Anyway: since you seem to have that new compiler installed I would find it interesting to know whether the "tuple testers" in the detail directory of Boost.Preprocessor work as expected now (they did not work with older versions of the Borland preprocessor):
#include <boost/preprocessor/detail/is_nullary.hpp> #include <boost/preprocessor/detail/is_unary.hpp> #include <boost/preprocessor/detail/is_binary.hpp>
BOOST_PP_IS_NULLARY(foo) // should expand to 0 BOOST_PP_IS_UNARY(foo) // should expand to 0 BOOST_PP_IS_BINARY(foo) // should expand to 0
BOOST_PP_IS_NULLARY(()) // should expand to 1 BOOST_PP_IS_UNARY((foo)) // should expand to 1 BOOST_PP_IS_BINARY((foo,bar)) // should expand to 1
Regards,
Tobias
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
After some adjusting of boost/config/borland.hpp, and adding the suggested test, these are the results of config_info nullary,unary and binary results at the end): #Unknown ISO C++ Compiler # __BORLANDC__ =0x0581 # __CDECL__ =1 # __CONSOLE__ =1 # _CPPUNWIND =1 # __cplusplus =1 # __FLAT__ =1 # __FUNC__ ="print_compiler_macros" # _M_IX86 =500 # __TLS__ =1 # _WCHAR_T [no value] # _Windows =1 # __WIN32__ =1 # _WIN32 =1 # _RTLDLL [no value] # _WCHAR_T_DEFINED [no value] # _DLL =1 # __i386__ =1 # _WCHAR_T [no value] # __STDC_HOSTED__ =1 # # #********************************************************************* # #Dinkumware standard library version 402 # _CPPLIB_VER =402 # _HAS_EXCEPTIONS =1 # # #********************************************************************* # #Detected Platform: Win32 # Type char is signed # Type wchar_t is unsigned # byte order for type short =0 8 # byte order for type int =0 8 16 24 # byte order for type long =0 8 16 24 # sizeof(wchar_t) =2 # sizeof(short) =2 # sizeof(int) =4 # sizeof(long) =4 # sizeof(size_t) =4 # sizeof(ptrdiff_t) =4 # sizeof(void*) =4 # sizeof(void(*)(void)) =4 # sizeof(float) =4 # sizeof(double) =8 # sizeof(long double) =10 # CHAR_BIT =8 # CHAR_MAX =127 # WCHAR_MAX =0x7fff # SHRT_MAX =32767 # INT_MAX =2147483647L # LONG_MAX =2147483647L # __STDC_IEC_559__ =1 # __STDC_IEC_559_COMPLEX__ =1 # __STDC_ISO_10646__ =200009L # # #********************************************************************* # #Boost version 103301 # BOOST_USER_CONFIG =<boost/config/user.hpp> # BOOST_COMPILER_CONFIG ="boost/config/compiler/borland.hpp" # BOOST_STDLIB_CONFIG ="boost/config/stdlib/dinkumware.hpp" # BOOST_PLATFORM_CONFIG ="boost/config/platform/win32.hpp" # BOOST_BCB_PARTIAL_SPECIALIZATION_BUG [no value] # BOOST_DEDUCED_TYPENAME =typename # BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL [no value] # BOOST_HAS_DECLSPEC [no value] # BOOST_HAS_FTIME [no value] # BOOST_HAS_PARTIAL_STD_ALLOCATOR [no value] # BOOST_MSVC6_MEMBER_TEMPLATES [no value] # BOOST_NESTED_TEMPLATE =template # BOOST_NO_DEPENDENT_NESTED_DERIVATIONS [no value] # BOOST_NO_FUNCTION_TEMPLATE_ORDERING [no value] # BOOST_NO_HASH [no value] # BOOST_NO_INTEGRAL_INT64_T [no value] # BOOST_NO_IS_ABSTRACT [no value] # BOOST_NO_LONG_LONG_NUMERIC_LIMITS [no value] # BOOST_NO_MEMBER_TEMPLATE_FRIENDS [no value] # BOOST_NO_MS_INT64_NUMERIC_LIMITS [no value] # BOOST_NO_PRIVATE_IN_AGGREGATE [no value] # BOOST_NO_SFINAE [no value] # BOOST_NO_SLIST [no value] # BOOST_NO_SWPRINTF [no value] # BOOST_NO_USING_TEMPLATE [no value] # BOOST_STD_EXTENSION_NAMESPACE =std # BOOST_UNREACHABLE_RETURN(0) [no value] # #nullary(foo):0 #unary(foo):0 #binary(foo):0 #nullary(()):1 #unary((foo)):1 #binary((foo,bar)):1 If I do understand it right, Borland has cirrectedthe preprocessor Best regads, Zara