|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r61432 - in trunk: boost/config/compiler libs/config/test
From: john_at_[hidden]
Date: 2010-04-20 13:26:06
Author: johnmaddock
Date: 2010-04-20 13:26:06 EDT (Tue, 20 Apr 2010)
New Revision: 61432
URL: http://svn.boost.org/trac/boost/changeset/61432
Log:
Tweak VC10 configuration settings.
Update BOOST_NO_DECLTYPE test with VC10 bug case.
Text files modified:
trunk/boost/config/compiler/visualc.hpp | 11 +++++------
trunk/libs/config/test/boost_no_decltype.ipp | 25 +++++++++++++++++++++++++
2 files changed, 30 insertions(+), 6 deletions(-)
Modified: trunk/boost/config/compiler/visualc.hpp
==============================================================================
--- trunk/boost/config/compiler/visualc.hpp (original)
+++ trunk/boost/config/compiler/visualc.hpp 2010-04-20 13:26:06 EDT (Tue, 20 Apr 2010)
@@ -159,31 +159,30 @@
#if _MSC_VER < 1600
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_DECLTYPE
#define BOOST_NO_LAMBDAS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_STATIC_ASSERT
+#define BOOST_NO_CHAR16_T
+#define BOOST_NO_CHAR32_T
+#define BOOST_NO_INITIALIZER_LISTS
+#define BOOST_NO_NULLPTR
#endif // _MSC_VER < 1600
// C++0x features not supported by any versions
-#define BOOST_NO_CHAR16_T
-#define BOOST_NO_CHAR32_T
#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DEFAULTED_FUNCTIONS
+#define BOOST_NO_DECLTYPE
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_EXTERN_TEMPLATE
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_INITIALIZER_LISTS
-#define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES
-
//
// prefix and suffix headers:
//
Modified: trunk/libs/config/test/boost_no_decltype.ipp
==============================================================================
--- trunk/libs/config/test/boost_no_decltype.ipp (original)
+++ trunk/libs/config/test/boost_no_decltype.ipp 2010-04-20 13:26:06 EDT (Tue, 20 Apr 2010)
@@ -1,3 +1,4 @@
+
// (C) Copyright Beman Dawes 2008
// Use, modification and distribution are subject to the
@@ -12,10 +13,34 @@
namespace boost_no_decltype {
+struct test_class
+{
+ test_class() {}
+};
+
+test_class get_test_class()
+{
+ return test_class();
+}
+
+template<typename F>
+void baz(F f)
+{
+ //
+ // Strangely VC-10 deduces the return type of F
+ // to be "test_class&". Remove the constructor
+ // from test_class and then decltype does work OK!!
+ //
+ typedef decltype(f()) res;
+ res r;
+}
+
int test()
{
int i;
decltype(i) j;
+ decltype(get_test_class()) k;
+ baz(get_test_class);
return 0;
}
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk