diff --git a/doc/html/boost_config/acknowledgements.html b/doc/html/boost_config/acknowledgements.html
index f8143ae3..8286d72d 100644
--- a/doc/html/boost_config/acknowledgements.html
+++ b/doc/html/boost_config/acknowledgements.html
@@ -3,7 +3,7 @@
Acknowledgements
-
+
diff --git a/doc/html/boost_config/boost_macro_reference.html b/doc/html/boost_config/boost_macro_reference.html
index 806bc110..e1fc36f2 100644
--- a/doc/html/boost_config/boost_macro_reference.html
+++ b/doc/html/boost_config/boost_macro_reference.html
@@ -3,7 +3,7 @@
Boost Macro Reference
-
+
@@ -1439,7 +1439,24 @@
- The platform has the Win32 API GetSystemTimeAsFileTime .
+ The platform has the Win32 API type FTIME.
+
+ |
+
+
+
+
+ BOOST_HAS_GETSYSTEMTIMEASFILETIME
+
+ |
+
+
+ Platform
+
+ |
+
+
+ The platform has the Win32 API GetSystemTimeAsFileTime.
|
diff --git a/doc/html/boost_config/guidelines_for_boost_authors.html b/doc/html/boost_config/guidelines_for_boost_authors.html
index 1079480d..cbc7dbce 100644
--- a/doc/html/boost_config/guidelines_for_boost_authors.html
+++ b/doc/html/boost_config/guidelines_for_boost_authors.html
@@ -3,7 +3,7 @@
Guidelines for Boost Authors
-
+
diff --git a/doc/html/boost_config/rationale.html b/doc/html/boost_config/rationale.html
index f92d7993..d62510c1 100644
--- a/doc/html/boost_config/rationale.html
+++ b/doc/html/boost_config/rationale.html
@@ -3,7 +3,7 @@
Rationale
-
+
diff --git a/doc/html/index.html b/doc/html/index.html
index 9c2bee38..8ba9dc99 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -3,7 +3,7 @@
Boost.Config
-
+
@@ -29,7 +29,7 @@
Copyright © 2001-2007 Beman Dawes, Vesa Karvonen, John
Maddock
-Last revised: June 01, 2011 at 14:31:32 GMT |
+Last revised: July 13, 2011 at 18:00:55 GMT |
|
diff --git a/doc/macro_reference.qbk b/doc/macro_reference.qbk
index f319f595..07b13c14 100644
--- a/doc/macro_reference.qbk
+++ b/doc/macro_reference.qbk
@@ -348,7 +348,10 @@ The platform has the POSIX header ``.
The platform has the functions `expm1`, `expm1f` and `expm1l` in ``
]]
[[`BOOST_HAS_FTIME`][Platform][
-The platform has the Win32 API `GetSystemTimeAsFileTime`.
+The platform has the Win32 API type FTIME.
+]]
+[[`BOOST_HAS_GETSYSTEMTIMEASFILETIME`][Platform][
+The platform has the Win32 API GetSystemTimeAsFileTime.
]]
[[`BOOST_HAS_GETTIMEOFDAY`][Platform][
The platform has the POSIX API `gettimeofday`.
diff --git a/include/boost/config/auto_link.hpp b/include/boost/config/auto_link.hpp
index f5a0a007..05b47fb4 100644
--- a/include/boost/config/auto_link.hpp
+++ b/include/boost/config/auto_link.hpp
@@ -364,7 +364,7 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
#ifdef BOOST_AUTO_LINK_TAGGED
# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
# ifdef BOOST_LIB_DIAGNOSTIC
-# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
+# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
# endif
#elif defined(BOOST_AUTO_LINK_NOMANGLE)
# pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
diff --git a/include/boost/config/compiler/cray.hpp b/include/boost/config/compiler/cray.hpp
new file mode 100644
index 00000000..ad2eeaf5
--- /dev/null
+++ b/include/boost/config/compiler/cray.hpp
@@ -0,0 +1,61 @@
+// (C) Copyright John Maddock 2011.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org for most recent version.
+
+// Greenhills C compiler setup:
+
+#define BOOST_COMPILER "Cray C version " BOOST_STRINGIZE(_RELEASE)
+
+#if _RELEASE < 7
+# error "Boost is not configured for Cray compilers prior to version 7, please try the configure script."
+#endif
+
+//
+// Check this is a recent EDG based compiler, otherwise we don't support it here:
+//
+#ifndef __EDG_VERSION__
+# error "Unsupported Cray compiler, please try running the configure script."
+#endif
+
+#include "boost/config/compiler/common_edg.hpp"
+
+//
+// Cray peculiarities, probably version 7 specific:
+//
+#undef BOOST_NO_AUTO_DECLARATIONS
+#undef BOOST_NO_AUTO_MULTIDECLARATIONS
+#define BOOST_HAS_NRVO
+#define BOOST_NO_VARIADIC_TEMPLATES
+#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
+#define BOOST_NO_UNICODE_LITERALS
+#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#define BOOST_HAS_NRVO
+#define BOOST_NO_TEMPLATE_ALIASES
+#define BOOST_NO_STATIC_ASSERT
+#define BOOST_NO_SFINAE_EXPR
+#define BOOST_NO_SCOPED_ENUMS
+#define BOOST_NO_RVALUE_REFERENCES
+#define BOOST_NO_RAW_LITERALS
+#define BOOST_NO_NULLPTR
+#define BOOST_NO_NOEXCEPT
+#define BOOST_NO_LAMBDAS
+#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
+#define BOOST_NO_DELETED_FUNCTIONS
+#define BOOST_NO_DEFAULTED_FUNCTIONS
+#define BOOST_NO_DECLTYPE_N3276
+#define BOOST_NO_DECLTYPE
+#define BOOST_NO_CONSTEXPR
+#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
+#define BOOST_NO_CHAR32_T
+#define BOOST_NO_CHAR16_T
+//#define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
+#define BOOST_MATH_DISABLE_STD_FPCLASSIFY
+//#define BOOST_HAS_FPCLASSIFY
+
+#define BOOST_SP_USE_PTHREADS
+#define BOOST_AC_USE_PTHREADS
+
diff --git a/include/boost/config/compiler/intel.hpp b/include/boost/config/compiler/intel.hpp
index faa080fc..eb4d8140 100644
--- a/include/boost/config/compiler/intel.hpp
+++ b/include/boost/config/compiler/intel.hpp
@@ -27,7 +27,7 @@
#endif
// Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x'
-#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && __STDC_HOSTED__) || defined(__GXX_EXPERIMENTAL_CPP0X__)
+#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__)
# define BOOST_INTEL_STDCXX0X
#endif
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
@@ -179,8 +179,9 @@ template<> struct assert_intrinsic_wchar_t {};
// intel-vc9-win-11.1 may leave a non-POD array uninitialized, in some
// cases when it should be value-initialized.
// (Niels Dekker, LKEB, May 2010)
+// Apparently Intel 12.1 (compiler version number 9999 !!) has the same issue (compiler regression).
#if defined(__INTEL_COMPILER)
-# if __INTEL_COMPILER <= 1110
+# if (__INTEL_COMPILER <= 1110) || (__INTEL_COMPILER == 9999)
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
# endif
#endif
@@ -210,7 +211,7 @@ template<> struct assert_intrinsic_wchar_t {};
#endif
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION >= 1200)
-# undef BOOST_NO_RVALUE_REFERENCES
+//# undef BOOST_NO_RVALUE_REFERENCES // Enabling this breaks Filesystem and Exception libraries
//# undef BOOST_NO_SCOPED_ENUMS // doesn't really work!!
# undef BOOST_NO_DELETED_FUNCTIONS
# undef BOOST_NO_DEFAULTED_FUNCTIONS
diff --git a/include/boost/config/platform/cray.hpp b/include/boost/config/platform/cray.hpp
new file mode 100644
index 00000000..5c476e41
--- /dev/null
+++ b/include/boost/config/platform/cray.hpp
@@ -0,0 +1,18 @@
+// (C) Copyright John Maddock 2011.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+
+// See http://www.boost.org for most recent version.
+
+// SGI Irix specific config options:
+
+#define BOOST_PLATFORM "Cray"
+
+// boilerplate code:
+#define BOOST_HAS_UNISTD_H
+#include
+
+
+
diff --git a/include/boost/config/platform/win32.hpp b/include/boost/config/platform/win32.hpp
index 72c3dceb..39220127 100644
--- a/include/boost/config/platform/win32.hpp
+++ b/include/boost/config/platform/win32.hpp
@@ -55,6 +55,8 @@
#ifdef _WIN32_WCE
# define BOOST_NO_ANSI_APIS
+#else
+# define BOOST_HAS_GETSYSTEMTIMEASFILETIME
#endif
#ifndef BOOST_HAS_PTHREADS
diff --git a/include/boost/config/select_compiler_config.hpp b/include/boost/config/select_compiler_config.hpp
index 34a4da58..0d47b254 100644
--- a/include/boost/config/select_compiler_config.hpp
+++ b/include/boost/config/select_compiler_config.hpp
@@ -17,6 +17,10 @@
// GCC-XML emulates other compilers, it has to appear first here!
# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc_xml.hpp"
+#elif defined(_CRAYC)
+// EDG based Cray compiler:
+# define BOOST_COMPILER_CONFIG "boost/config/compiler/cray.hpp"
+
#elif defined __CUDACC__
// NVIDIA CUDA C++ compiler for GPU
# define BOOST_COMPILER_CONFIG "boost/config/compiler/nvcc.hpp"
diff --git a/include/boost/config/select_platform_config.hpp b/include/boost/config/select_platform_config.hpp
index bc1ffaf6..2af61d2d 100644
--- a/include/boost/config/select_platform_config.hpp
+++ b/include/boost/config/select_platform_config.hpp
@@ -13,7 +13,7 @@
// in order to prevent macro expansion within the header
// name (for example "linux" is a macro on linux systems).
-#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)
+#if (defined(linux) || defined(__linux) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)) && !defined(_CRAYC)
// linux, also other platforms (Hurd etc) that use GLIBC, should these really have their own config headers though?
# define BOOST_PLATFORM_CONFIG "boost/config/platform/linux.hpp"
@@ -69,6 +69,10 @@
// Symbian:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/symbian.hpp"
+#elif defined(_CRAYC)
+// Cray:
+# define BOOST_PLATFORM_CONFIG "boost/config/platform/cray.hpp"
+
#elif defined(__VMS)
// VMS:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/vms.hpp"
diff --git a/test/all/Jamfile.v2 b/test/all/Jamfile.v2
index 8f138e9d..2c10d7f3 100644
--- a/test/all/Jamfile.v2
+++ b/test/all/Jamfile.v2
@@ -1,7 +1,7 @@
#
# Regression test Jamfile for boost configuration setup.
# *** DO NOT EDIT THIS FILE BY HAND ***
-# This file was automatically generated on Wed Jun 1 21:44:56 2011
+# This file was automatically generated on Wed Jul 13 18:50:14 2011
# by libs/config/tools/generate.cpp
# Copyright John Maddock.
# Use, modification and distribution are subject to the
@@ -40,6 +40,9 @@ test-suite "BOOST_HAS_EXPM1" :
test-suite "BOOST_HAS_FTIME" :
[ run ../has_ftime_pass.cpp ]
[ compile-fail ../has_ftime_fail.cpp ] ;
+test-suite "BOOST_HAS_GETSYSTEMTIMEASFILETIME" :
+[ run ../has_getsystemtimeasfiletime_pass.cpp ]
+[ compile-fail ../has_getsystemtimeasfiletime_fail.cpp ] ;
test-suite "BOOST_HAS_GETTIMEOFDAY" :
[ run ../has_gettimeofday_pass.cpp ]
[ compile-fail ../has_gettimeofday_fail.cpp ] ;
diff --git a/test/boost_has_ftime.ipp b/test/boost_has_ftime.ipp
index 664bc1f0..70964481 100644
--- a/test/boost_has_ftime.ipp
+++ b/test/boost_has_ftime.ipp
@@ -6,8 +6,8 @@
// See http://www.boost.org/libs/config for most recent version.
// MACRO: BOOST_HAS_FTIME
-// TITLE: GetSystemTimeAsFileTime
-// DESCRIPTION: The platform supports Win32 API GetSystemTimeAsFileTime.
+// TITLE: The platform has FTIME.
+// DESCRIPTION: The platform supports the Win32 API type FTIME.
#include
@@ -18,7 +18,6 @@ void f()
{
// this is never called, it just has to compile:
FILETIME ft;
- GetSystemTimeAsFileTime(&ft);
}
int test()
diff --git a/test/boost_has_getsystemtimeasfiletime.ipp b/test/boost_has_getsystemtimeasfiletime.ipp
new file mode 100644
index 00000000..d9b7e1c9
--- /dev/null
+++ b/test/boost_has_getsystemtimeasfiletime.ipp
@@ -0,0 +1,30 @@
+// (C) Copyright John Maddock 2011.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_GETSYSTEMTIMEASFILETIME
+// TITLE: GetSystemTimeAsFileTime
+// DESCRIPTION: The platform supports Win32 API GetSystemTimeAsFileTime.
+
+#include
+
+
+namespace boost_has_getsystemtimeasfiletime{
+
+void f()
+{
+ // this is never called, it just has to compile:
+ FILETIME ft;
+ GetSystemTimeAsFileTime(&ft);
+}
+
+int test()
+{
+ return 0;
+}
+
+}
+
diff --git a/test/boost_no_decltype.ipp b/test/boost_no_decltype.ipp
index f76db77e..db1aae39 100644
--- a/test/boost_no_decltype.ipp
+++ b/test/boost_no_decltype.ipp
@@ -40,7 +40,11 @@ int test()
int i;
decltype(i) j;
decltype(get_test_class()) k;
+ #ifndef _MSC_VER
+ // Although the VC++ decltype is buggy, we none the less enable support,
+ // so don't test the bugs for now!
baz(get_test_class);
+ #endif
return 0;
}
diff --git a/test/config_info.cpp b/test/config_info.cpp
index eece2e19..c0612bfc 100644
--- a/test/config_info.cpp
+++ b/test/config_info.cpp
@@ -294,6 +294,22 @@ void print_compiler_macros()
PRINT_MACRO(_PGO_INSTRUMENT);
PRINT_MACRO(__QMSPP_);
+ // Cray options:
+ PRINT_MACRO(_CRAYC);
+ PRINT_MACRO(_RELEASE);
+ PRINT_MACRO(cray);
+ PRINT_MACRO(CRAY);
+ PRINT_MACRO(CRAY1);
+ PRINT_MACRO(_CRAY1);
+ PRINT_MACRO(_CRAYMPP);
+ PRINT_MACRO(_CRAYT3E);
+ PRINT_MACRO(_CRAYIEEE);
+ PRINT_MACRO(_ADDR32);
+ PRINT_MACRO(_ADDR64);
+ PRINT_MACRO(_LD64);
+ PRINT_MACRO(_FASTMD);
+ PRINT_MACRO(_MAXVL);
+
// misc compilers not covered so far:
PRINT_MACRO(__USLC__);
PRINT_MACRO(__DECCXX);
@@ -917,6 +933,7 @@ void print_boost_macros()
PRINT_MACRO(BOOST_HAS_DIRENT_H);
PRINT_MACRO(BOOST_HAS_EXPM1);
PRINT_MACRO(BOOST_HAS_FTIME);
+ PRINT_MACRO(BOOST_HAS_GETSYSTEMTIMEASFILETIME);
PRINT_MACRO(BOOST_HAS_GETTIMEOFDAY);
PRINT_MACRO(BOOST_HAS_HASH);
PRINT_MACRO(BOOST_HAS_LOG1P);
@@ -1084,6 +1101,7 @@ void print_boost_macros()
+
// END GENERATED BLOCK
PRINT_MACRO(BOOST_INTEL);
diff --git a/test/config_test.cpp b/test/config_test.cpp
index 10abbd62..8e909be7 100644
--- a/test/config_test.cpp
+++ b/test/config_test.cpp
@@ -1,4 +1,4 @@
-// This file was automatically generated on Wed Jun 1 21:44:56 2011
+// This file was automatically generated on Wed Jul 13 18:50:14 2011
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the
@@ -633,6 +633,11 @@ namespace boost_has_expm1 = empty_boost;
#else
namespace boost_has_ftime = empty_boost;
#endif
+#ifdef BOOST_HAS_GETSYSTEMTIMEASFILETIME
+#include "boost_has_getsystemtimeasfiletime.ipp"
+#else
+namespace boost_has_getsystemtimeasfiletime = empty_boost;
+#endif
#ifdef BOOST_HAS_GETTIMEOFDAY
#include "boost_has_gettimeofday.ipp"
#else
@@ -886,6 +891,11 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_HAS_FTIME at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
+ if(0 != boost_has_getsystemtimeasfiletime::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_GETSYSTEMTIMEASFILETIME at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
if(0 != boost_has_gettimeofday::test())
{
std::cerr << "Failed test for BOOST_HAS_GETTIMEOFDAY at: " << __FILE__ << ":" << __LINE__ << std::endl;
diff --git a/test/has_getsystemtimeasfiletime_fail.cpp b/test/has_getsystemtimeasfiletime_fail.cpp
new file mode 100644
index 00000000..15414938
--- /dev/null
+++ b/test/has_getsystemtimeasfiletime_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Wed Jul 13 18:50:13 2011
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: generate.cpp 72327 2011-06-01 14:51:03Z eric_niebler $
+//
+
+
+// Test file for macro BOOST_HAS_GETSYSTEMTIMEASFILETIME
+// This file should not compile, if it does then
+// BOOST_HAS_GETSYSTEMTIMEASFILETIME should be defined.
+// See file boost_has_getsystemtimeasfiletime.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include
+#include "test.hpp"
+
+#ifndef BOOST_HAS_GETSYSTEMTIMEASFILETIME
+#include "boost_has_getsystemtimeasfiletime.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_getsystemtimeasfiletime::test();
+}
+
diff --git a/test/has_getsystemtimeasfiletime_pass.cpp b/test/has_getsystemtimeasfiletime_pass.cpp
new file mode 100644
index 00000000..e8ea83bb
--- /dev/null
+++ b/test/has_getsystemtimeasfiletime_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Wed Jul 13 18:50:13 2011
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: generate.cpp 72327 2011-06-01 14:51:03Z eric_niebler $
+//
+
+
+// Test file for macro BOOST_HAS_GETSYSTEMTIMEASFILETIME
+// This file should compile, if it does not then
+// BOOST_HAS_GETSYSTEMTIMEASFILETIME should not be defined.
+// See file boost_has_getsystemtimeasfiletime.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include
+#include "test.hpp"
+
+#ifdef BOOST_HAS_GETSYSTEMTIMEASFILETIME
+#include "boost_has_getsystemtimeasfiletime.ipp"
+#else
+namespace boost_has_getsystemtimeasfiletime = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_getsystemtimeasfiletime::test();
+}
+