[unordered] 1.48 beta1 fails to compile with MSVC 2010 SP 1, error C2027: use of undefined type 'boost::type'

After trying out beta 1, I am seeing some failures with unordered containers, see attached file. Microsoft (R) C/C++ Optimizing Compiler Version 16.00.40219.01 for x64 The code compiles without problems under 1.47.0. Unfortunately, I cannot yet publish the source code that triggers this problem. Any hints where to start investigating this? -- /Johan.

On Saturday, 29 October 2011, Johan Lindvall wrote:
After trying out beta 1, I am seeing some failures with unordered containers, see attached file.
Microsoft (R) C/C++ Optimizing Compiler Version 16.00.40219.01 for x64
The code compiles without problems under 1.47.0.
Unfortunately, I cannot yet publish the source code that triggers this problem.
Can you try something? Look in boost/unordered/detail/allocator_helpers.hpp for the line: #if !defined(BOOST_NO_SFINAE_EXPR) || BOOST_WORKAROUND(BOOST_MSVC, >= 1500) and change it to: #if !defined(BOOST_NO_SFINAE_EXPR) Unordered uses a bit of a hack on Visual C++ to implement some of the C++11 functionality. That change disables it and uses the less capable fallback implementation (which is actually a lot better now than it originally was, so using a hack seems less appealing).

On Sat, Oct 29, 2011 at 5:12 PM, Daniel James <dnljms@gmail.com> wrote:
On Saturday, 29 October 2011, Johan Lindvall wrote:
After trying out beta 1, I am seeing some failures with unordered containers, see attached file.
Microsoft (R) C/C++ Optimizing Compiler Version 16.00.40219.01 for x64
The code compiles without problems under 1.47.0.
Unfortunately, I cannot yet publish the source code that triggers this problem.
Can you try something? Look in boost/unordered/detail/allocator_helpers.hpp for the line:
#if !defined(BOOST_NO_SFINAE_EXPR) || BOOST_WORKAROUND(BOOST_MSVC, >= 1500)
and change it to:
#if !defined(BOOST_NO_SFINAE_EXPR)
Unordered uses a bit of a hack on Visual C++ to implement some of the C++11 functionality. That change disables it and uses the less capable fallback implementation (which is actually a lot better now than it originally was, so using a hack seems less appealing).
Thankyou - yes, that solved the problem. The code now compiles as before. -- /Johan.

On Sat, Oct 29, 2011 at 6:09 PM, Johan Lindvall <johan.lindvall@gmail.com> wrote:
On Sat, Oct 29, 2011 at 5:12 PM, Daniel James <dnljms@gmail.com> wrote: Can you try something? Look in boost/unordered/detail/allocator_helpers.hpp for the line:
#if !defined(BOOST_NO_SFINAE_EXPR) || BOOST_WORKAROUND(BOOST_MSVC, >= 1500)
and change it to:
#if !defined(BOOST_NO_SFINAE_EXPR)
Unordered uses a bit of a hack on Visual C++ to implement some of the C++11 functionality. That change disables it and uses the less capable fallback implementation (which is actually a lot better now than it originally was, so using a hack seems less appealing).
Thankyou - yes, that solved the problem. The code now compiles as before.
It would be great if this fix could be rolled into 1.48. Thanks, -- /Johan.

On Monday, 31 October 2011, Johan Lindvall wrote:
It would be great if this fix could be rolled into 1.48.
It should be, I'm waiting for the tests to run on the trunk testers. There are a couple of other changes to be merged and only one windows tester has run since the last change.

On Mon, Oct 31, 2011 at 10:21 PM, Daniel James <dnljms@gmail.com> wrote:
On Monday, 31 October 2011, Johan Lindvall wrote:
It would be great if this fix could be rolled into 1.48.
It should be, I'm waiting for the tests to run on the trunk testers. There are a couple of other changes to be merged and only one windows tester has run since the last change.
Thankyou, much appreciated. -- /Johan.
participants (2)
-
Daniel James
-
Johan Lindvall