forked from boostorg/config
Added new config macro BOOST_HAS_MS_INT64 to detect presence of __int64 data type.
Modified boost source to use BOOST_HAS_LONG_LONG and BOOST_HAS_MS_INT64 where appropriate to do so. [SVN r13714]
This commit is contained in:
@ -46,6 +46,10 @@
|
|||||||
#include <float.h>
|
#include <float.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if __BORLANDC__ >= 0x530
|
||||||
|
# define BOOST_HAS_MS_INT64
|
||||||
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// check for exception handling support:
|
// check for exception handling support:
|
||||||
#ifndef _CPPUNWIND
|
#ifndef _CPPUNWIND
|
||||||
|
@ -22,6 +22,11 @@
|
|||||||
# define BOOST_NO_VOID_RETURNS
|
# define BOOST_NO_VOID_RETURNS
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# if defined(_MSC_VER) && (_MSC_VER >= 1200)
|
||||||
|
# define BOOST_HAS_MS_INT64
|
||||||
|
# endif
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define BOOST_COMPILER "Comeau compiler version " BOOST_STRINGIZE(__COMO_VERSION__)
|
#define BOOST_COMPILER "Comeau compiler version " BOOST_STRINGIZE(__COMO_VERSION__)
|
||||||
|
@ -52,6 +52,9 @@
|
|||||||
# ifndef _NATIVE_WCHAR_T_DEFINED
|
# ifndef _NATIVE_WCHAR_T_DEFINED
|
||||||
# define BOOST_NO_INTRINSIC_WCHAR_T
|
# define BOOST_NO_INTRINSIC_WCHAR_T
|
||||||
# endif
|
# endif
|
||||||
|
# if _MSC_VER >= 1200
|
||||||
|
# define BOOST_HAS_MS_INT64
|
||||||
|
# endif
|
||||||
# define BOOST_NO_SWPRINTF
|
# define BOOST_NO_SWPRINTF
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -73,6 +73,20 @@
|
|||||||
# define BOOST_NO_EXCEPTIONS
|
# define BOOST_NO_EXCEPTIONS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// __int64 support:
|
||||||
|
//
|
||||||
|
#if _MSC_VER >= 1200
|
||||||
|
# define BOOST_HAS_MS_INT64
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// long long support:
|
||||||
|
//
|
||||||
|
#if _MSC_VER >= 1301
|
||||||
|
# define BOOST_HAS_LONG_LONG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(_MSC_VER)
|
#define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(_MSC_VER)
|
||||||
|
|
||||||
|
@ -32,6 +32,9 @@
|
|||||||
&& (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX))
|
&& (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX))
|
||||||
# define BOOST_HAS_LONG_LONG
|
# define BOOST_HAS_LONG_LONG
|
||||||
#endif
|
#endif
|
||||||
|
#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_INTEGRAL_INT64_T)
|
||||||
|
# define BOOST_NO_INTEGRAL_INT64_T
|
||||||
|
#endif
|
||||||
|
|
||||||
// GCC 3.x will clean up all of those nasty macro definitions that
|
// GCC 3.x will clean up all of those nasty macro definitions that
|
||||||
// BOOST_NO_CTYPE_FUNCTIONS is intended to help work around, so undefine
|
// BOOST_NO_CTYPE_FUNCTIONS is intended to help work around, so undefine
|
||||||
|
29
test/boost_has_ms_int64.ipp
Normal file
29
test/boost_has_ms_int64.ipp
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
|
||||||
|
// distribute this software is granted provided this copyright notice appears
|
||||||
|
// in all copies. This software is provided "as is" without express or implied
|
||||||
|
// warranty, and with no claim as to its suitability for any purpose.
|
||||||
|
|
||||||
|
// MACRO: BOOST_HAS_MS_INT64
|
||||||
|
// TITLE: __int64
|
||||||
|
// DESCRIPTION: The platform supports Microsoft style __int64.
|
||||||
|
|
||||||
|
#include <cstdlib>
|
||||||
|
|
||||||
|
|
||||||
|
namespace boost_has_ms_int64{
|
||||||
|
|
||||||
|
int test()
|
||||||
|
{
|
||||||
|
__int64 lli = 0i64;
|
||||||
|
unsigned __int64 ulli = 0ui64;
|
||||||
|
(void)lli;
|
||||||
|
(void)ulli;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -829,6 +829,7 @@ void print_boost_macros()
|
|||||||
PRINT_MACRO(BOOST_HAS_HASH);
|
PRINT_MACRO(BOOST_HAS_HASH);
|
||||||
PRINT_MACRO(BOOST_HAS_LONG_LONG);
|
PRINT_MACRO(BOOST_HAS_LONG_LONG);
|
||||||
PRINT_MACRO(BOOST_HAS_MACRO_USE_FACET);
|
PRINT_MACRO(BOOST_HAS_MACRO_USE_FACET);
|
||||||
|
PRINT_MACRO(BOOST_HAS_MS_INT64);
|
||||||
PRINT_MACRO(BOOST_HAS_NANOSLEEP);
|
PRINT_MACRO(BOOST_HAS_NANOSLEEP);
|
||||||
PRINT_MACRO(BOOST_HAS_NL_TYPES_H);
|
PRINT_MACRO(BOOST_HAS_NL_TYPES_H);
|
||||||
PRINT_MACRO(BOOST_HAS_PTHREAD_DELAY_NP);
|
PRINT_MACRO(BOOST_HAS_PTHREAD_DELAY_NP);
|
||||||
@ -884,6 +885,7 @@ void print_boost_macros()
|
|||||||
PRINT_MACRO(BOOST_NO_STD_WSTRING);
|
PRINT_MACRO(BOOST_NO_STD_WSTRING);
|
||||||
PRINT_MACRO(BOOST_NO_STDC_NAMESPACE);
|
PRINT_MACRO(BOOST_NO_STDC_NAMESPACE);
|
||||||
PRINT_MACRO(BOOST_NO_STRINGSTREAM);
|
PRINT_MACRO(BOOST_NO_STRINGSTREAM);
|
||||||
|
PRINT_MACRO(BOOST_NO_SWPRINTF);
|
||||||
PRINT_MACRO(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION);
|
PRINT_MACRO(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION);
|
||||||
PRINT_MACRO(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS);
|
PRINT_MACRO(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS);
|
||||||
PRINT_MACRO(BOOST_DISABLE_THREADS);
|
PRINT_MACRO(BOOST_DISABLE_THREADS);
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
// Do not edit this file, it was generated automatically by
|
// Do not edit this file, it was generated automatically by
|
||||||
// ../tools/generate from boost_*.cxx on
|
// ../tools/generate from boost_*.cxx on
|
||||||
// Fri Feb 8 11:29:25 2002
|
// Mon May 6 12:58:50 BST 2002
|
||||||
|
|
||||||
#include <boost/config.hpp>
|
#include <boost/config.hpp>
|
||||||
#define BOOST_INCLUDE_MAIN
|
#define BOOST_INCLUDE_MAIN
|
||||||
@ -400,3 +400,4 @@ int test_main( int, char *[] )
|
|||||||
BOOST_TEST(0 == boost_has_two_arg_use_facet::test());
|
BOOST_TEST(0 == boost_has_two_arg_use_facet::test());
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
36
test/has_ms_int64_fail.cpp
Normal file
36
test/has_ms_int64_fail.cpp
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
|
||||||
|
// (C) Copyright Boost.org 1999. Permission to copy, use, modify, sell and
|
||||||
|
// distribute this software is granted provided this copyright notice appears
|
||||||
|
// in all copies. This software is provided "as is" without express or implied
|
||||||
|
// warranty, and with no claim as to its suitability for any purpose.
|
||||||
|
|
||||||
|
// Test file for macro BOOST_HAS_MS_INT64
|
||||||
|
// This file should not compile, if it does then
|
||||||
|
// BOOST_HAS_MS_INT64 may be defined.
|
||||||
|
// see boost_has_ms_int64.cxx for more details
|
||||||
|
|
||||||
|
// Do not edit this file, it was generated automatically by
|
||||||
|
// ../tools/generate from boost_has_ms_int64.cxx on
|
||||||
|
// Mon May 6 12:26:03 2002
|
||||||
|
|
||||||
|
// Must not have BOOST_ASSERT_CONFIG set; it defeats
|
||||||
|
// the objective of this file:
|
||||||
|
#ifdef BOOST_ASSERT_CONFIG
|
||||||
|
# undef BOOST_ASSERT_CONFIG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
#include <boost/test/cpp_main.cpp>
|
||||||
|
#include "test.hpp"
|
||||||
|
|
||||||
|
#ifndef BOOST_HAS_MS_INT64
|
||||||
|
#include "boost_has_ms_int64.cxx"
|
||||||
|
#else
|
||||||
|
#error "this file should not compile"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int cpp_main( int, char *[] )
|
||||||
|
{
|
||||||
|
return boost_has_ms_int64::test();
|
||||||
|
}
|
||||||
|
|
36
test/has_ms_int64_pass.cpp
Normal file
36
test/has_ms_int64_pass.cpp
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
|
||||||
|
// (C) Copyright Boost.org 1999. Permission to copy, use, modify, sell and
|
||||||
|
// distribute this software is granted provided this copyright notice appears
|
||||||
|
// in all copies. This software is provided "as is" without express or implied
|
||||||
|
// warranty, and with no claim as to its suitability for any purpose.
|
||||||
|
|
||||||
|
// Test file for macro BOOST_HAS_MS_INT64
|
||||||
|
// This file should compile, if it does not then
|
||||||
|
// BOOST_HAS_MS_INT64 should not be defined.
|
||||||
|
// see boost_has_ms_int64.cxx for more details
|
||||||
|
|
||||||
|
// Do not edit this file, it was generated automatically by
|
||||||
|
// ../tools/generate from boost_has_ms_int64.cxx on
|
||||||
|
// Mon May 6 12:26:03 2002
|
||||||
|
|
||||||
|
// Must not have BOOST_ASSERT_CONFIG set; it defeats
|
||||||
|
// the objective of this file:
|
||||||
|
#ifdef BOOST_ASSERT_CONFIG
|
||||||
|
# undef BOOST_ASSERT_CONFIG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
#include <boost/test/cpp_main.cpp>
|
||||||
|
#include "test.hpp"
|
||||||
|
|
||||||
|
#ifdef BOOST_HAS_MS_INT64
|
||||||
|
#include "boost_has_ms_int64.cxx"
|
||||||
|
#else
|
||||||
|
namespace boost_has_ms_int64 = empty_boost;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int cpp_main( int, char *[] )
|
||||||
|
{
|
||||||
|
return boost_has_ms_int64::test();
|
||||||
|
}
|
||||||
|
|
@ -101,6 +101,8 @@ run libs/config/test/has_long_long_pass.cpp
|
|||||||
link-fail libs/config/test/has_long_long_fail.cpp
|
link-fail libs/config/test/has_long_long_fail.cpp
|
||||||
run libs/config/test/has_macro_use_facet_pass.cpp
|
run libs/config/test/has_macro_use_facet_pass.cpp
|
||||||
link-fail libs/config/test/has_macro_use_facet_fail.cpp
|
link-fail libs/config/test/has_macro_use_facet_fail.cpp
|
||||||
|
run libs/config/test/has_ms_int64_pass.cpp
|
||||||
|
link-fail libs/config/test/has_ms_int64_fail.cpp
|
||||||
run libs/config/test/has_nanosleep_pass.cpp
|
run libs/config/test/has_nanosleep_pass.cpp
|
||||||
link-fail libs/config/test/has_nanosleep_fail.cpp
|
link-fail libs/config/test/has_nanosleep_fail.cpp
|
||||||
run libs/config/test/has_nl_types_h_pass.cpp
|
run libs/config/test/has_nl_types_h_pass.cpp
|
||||||
|
Reference in New Issue
Block a user