unordered_map failing to compile on MSVC7.1 using STLport

For some reason, I get the following compiler error on Visual Studio .NET 2003 when using STLport 5.2.1: boost\unordered\detail\allocator_helpers.hpp(318) : error C2039: 'select_on_container_copy_construction' : is not a member of 'stlpd_std::allocator<_Tp>' Any idea why this is happening? If not, what other information can I provide? --------- Robert Dailey

On Fri, Feb 10, 2012 at 1:05 PM, Robert Dailey <rcdailey@gmail.com> wrote:
For some reason, I get the following compiler error on Visual Studio .NET 2003 when using STLport 5.2.1:
boost\unordered\detail\allocator_helpers.hpp(318) : error C2039: 'select_on_container_copy_construction' : is not a member of 'stlpd_std::allocator<_Tp>'
Any idea why this is happening? If not, what other information can I provide?
Here is the full error: C:\Code\work\cmake-gfe-dev\build-vc7\third_party\boost\1.48.0\include\boost\unordered\detail\allocator_helpers.hpp(318) : error C2039: 'select_on_container_copy_construction' : is not a member of 'stlpd_std::allocator<_Tp>' with [ _Tp=boost::unordered::detail::ptr_node<boost::unordered::detail::map<boost::unordered::unordered_map<int,int>::value_allocator,int,boost::hash<int>,stlpd_std::equal_to<int>>::value_type> ] C:\Code\work\cmake-gfe-dev\build-vc7\third_party\boost\1.48.0\include\boost\unordered\detail\allocator_helpers.hpp(436) : see reference to function template instantiation 'boost::enable_if_c<B,T>::type boost::unordered::detail::call_select_on_container_copy_construction<Alloc>(const Alloc &)' being compiled with [ B=true, T=boost::unordered::detail::rebind_wrap<boost::unordered::unordered_map<int,int>::value_allocator,boost::unordered::detail::ptr_node<boost::unordered::detail::map<boost::unordered::unordered_map<int,int>::value_allocator,int,boost::hash<int>,stlpd_std::equal_to<int>>::value_type>>::type, Alloc=boost::unordered::detail::rebind_wrap<boost::unordered::unordered_map<int,int>::value_allocator,boost::unordered::detail::ptr_node<boost::unordered::detail::map<boost::unordered::unordered_map<int,int>::value_allocator,int,boost::hash<int>,stlpd_std::equal_to<int>>::value_type>>::type ] C:\Code\work\cmake-gfe-dev\build-vc7\third_party\boost\1.48.0\include\boost\unordered\detail\allocator_helpers.hpp(434) : while compiling class-template member function 'boost::unordered::detail::rebind_wrap<Alloc,T>::type boost::unordered::detail::allocator_traits<boost::unordered::detail::rebind_wrap<Alloc,T>::type>::select_on_container_copy_construction(const stlpd_std::allocator<_Tp> &)' with [ Alloc=boost::unordered::unordered_map<int,int>::value_allocator, T=boost::unordered::detail::ptr_node<boost::unordered::detail::map<boost::unordered::unordered_map<int ,int>::value_allocator,int,boost::hash<int>,stlpd_std::equal_to<int>>::value_type>, _Tp=boost::unordered::detail::ptr_node<boost::unordered::detail::map<boost::unordered::unordered_map<int,int>::value_allocator,int,boost::hash<int>,stlpd_std::equal_to<int>>::value_type> ] C:\Code\work\cmake-gfe-dev\build-vc7\third_party\boost\1.48.0\include\boost\unordered\detail\unique.hpp(106) : see reference to class template instantiation 'boost::unordered::detail::allocator_traits<Alloc>' being compiled with [ Alloc=boost::unordered::detail::rebind_wrap<boost::unordered::unordered_map<int,int>::value_allocator,boost::unordered::detail::ptr_node<boost::unordered::detail::map<boost::unordered::unordered_map<int,int>::value_allocator,int,boost::hash<int>,stlpd_std::equal_to<int>>::value_type>>::type ] C:\Code\work\cmake-gfe-dev\build-vc7\third_party\boost\1.48.0\include\boost\unordered\detail\unique.hpp(150) : see reference to class template instantiation 'boost::unordered::detail::pick_node<A,T>' being compiled with [ A=boost::unordered::unordered_map<int,int>::value_allocator, T=boost::unordered::detail::map<boost::unordered::unordered_map<int,int>::value_allocator,int,boost::hash<int>,stlpd_std::equal_to<int>>::value_type ] C:\Code\work\cmake-gfe-dev\build-vc7\third_party\boost\1.48.0\include\boost\unordered\unordered_map.hpp(66) : see reference to class template instantiation 'boost::unordered::detail::map<A,K,H,P>' being compiled with [ A=boost::unordered::unordered_map<int,int>::value_allocator, K=int, H=boost::hash<int>, P=stlpd_std::equal_to<int> ] c:\Code\work\cmake-gfe-dev\server\common\gmsdblib\gdgalquery.h(40) : see reference to class template instantiation 'boost::unordered::unordered_map<K,T>' being compiled with [ K=int, T=int ] C:\Code\work\cmake-gfe-de v\build-vc7\third_party\stlport\5.2.1\include\stlport\stl\_locale.h(349) : see reference to class template instantiation 'stlpd_std::money_put<_CharT,_OutputIter>' being compiled with [ _CharT=char, _OutputIter=stlpd_std::ostreambuf_iterator<char,stlpd_std::char_traits<char>> ] C:\Code\work\cmake-gfe-dev\build-vc7\third_party\stlport\5.2.1\include\stlport\stl\_locale.h(349) : see reference to class template instantiation 'stlpd_std::time_get<_Ch,_InIt>' being compiled with [ _Ch=char, _InIt=stlpd_std::istreambuf_iterator<char,stlpd_std::char_traits<char>> ] C:\Code\work\cmake-gfe-dev\build-vc7\third_party\stlport\5.2.1\include\stlport\stl\_locale.h(349) : see reference to class template instantiation 'stlpd_std::time_put<_Ch,_OutIt>' being compiled with [ _Ch=char, _OutIt=stlpd_std::ostreambuf_iterator<char,stlpd_std::char_traits<char>> ] C:\Code\work\cmake-gfe-dev\build-vc7\third_party\stlport\5.2.1\include\stlport\stl\_locale.h(349) : see reference to class template instantiation 'stlpd_std::money_get<_CharT,_InputIter>' being compiled with [ _CharT=wchar_t, _InputIter=stlpd_std::istreambuf_iterator<wchar_t,stlpd_std::char_traits<wchar_t>> ] C:\Code\work\cmake-gfe-dev\build-vc7\third_party\stlport\5.2.1\include\stlport\stl\_locale.h(349) : see reference to class template instantiation 'stlpd_std::money_put<_CharT,_OutputIter>' being compiled with [ _CharT=wchar_t, _OutputIter=stlpd_std::ostreambuf_iterator<wchar_t,stlpd_std::char_traits<wchar_t>> ] C:\Code\work\cmake-gfe-dev\build-vc7\third_party\stlport\5.2.1\include\stlport\stl\_locale.h(349) : see reference to class template instantiation 'stlpd_std::time_get<_Ch,_InIt>' being compiled with [ _Ch=wchar_t, _InIt=stlpd_std::istreambuf_iterator<wc har_t,stlpd_std::char_traits<wchar_t>> ] C:\Code\work\cmake-gfe-dev\build-vc7\third_party\stlport\5.2.1\include\stlport\stl\_locale.h(349) : see reference to class template instantiation 'stlpd_std::time_put<_Ch,_OutIt>' being compiled with [ _Ch=wchar_t, _OutIt=stlpd_std::ostreambuf_iterator<wchar_t,stlpd_std::char_traits<wchar_t>> ] C:\Code\work\cmake-gfe-dev\build-vc7\third_party\stlport\5.2.1\include\stlport\stl\_locale.h(294) : see reference to function template instantiation '_Facet *stlpd_std::priv::_UseFacet<_Facet>(const stlpd_std::locale &,const _Facet *)' being compiled with [ _Facet=stlpd_std::ctype<wchar_t> ] C:\Code\work\cmake-gfe-dev\build-vc7\third_party\stlport\5.2.1\include\stlport\stl\_num_put.c(135) : see reference to function template instantiation 'const _Facet &stlpd_std::use_facet<stlpd_std::ctype<wchar_t>>(const stlpd_std::locale &)' being compiled with [ _Facet=stlpd_std::ctype<wchar_t> ]

I would really appreciate some insight here, I have no idea what is going on. This is actually preventing company code from compiling, so it's extremely important. If I can't get help here the only thing I can do is just not use boost. The "call stack" chain for template instantiation provided in my pasted error is confusing. It shows the source of where I create the unordered_map, which is in gdgalquery.h(40), but after that it says that _locale.h is next? How is _locale.h next? That tells me that STL is instantiating my class? Anyone know what is going on? --------- Robert Dailey On Fri, Feb 10, 2012 at 1:13 PM, Robert Dailey <rcdailey@gmail.com> wrote:
On Fri, Feb 10, 2012 at 1:05 PM, Robert Dailey <rcdailey@gmail.com> wrote:
For some reason, I get the following compiler error on Visual Studio .NET 2003 when using STLport 5.2.1:
boost\unordered\detail\allocator_helpers.hpp(318) : error C2039: 'select_on_container_copy_construction' : is not a member of 'stlpd_std::allocator<_Tp>'
Any idea why this is happening? If not, what other information can I provide?
Here is the full error:
C:\Code\work\cmake-gfe-dev\build-vc7\third_party\boost\1.48.0\include\boost\unordered\detail\allocator_helpers.hpp(318) : error C2039: 'select_on_container_copy_construction' : is not a member of 'stlpd_std::allocator<_Tp>' with [
_Tp=boost::unordered::detail::ptr_node<boost::unordered::detail::map<boost::unordered::unordered_map<int,int>::value_allocator,int,boost::hash<int>,stlpd_std::equal_to<int>>::value_type> ]
C:\Code\work\cmake-gfe-dev\build-vc7\third_party\boost\1.48.0\include\boost\unordered\detail\allocator_helpers.hpp(436) : see reference to function template instantiation 'boost::enable_if_c<B,T>::type boost::unordered::detail::call_select_on_container_copy_construction<Alloc>(const Alloc &)' being compiled with [ B=true,
T=boost::unordered::detail::rebind_wrap<boost::unordered::unordered_map<int,int>::value_allocator,boost::unordered::detail::ptr_node<boost::unordered::detail::map<boost::unordered::unordered_map<int,int>::value_allocator,int,boost::hash<int>,stlpd_std::equal_to<int>>::value_type>>::type,
Alloc=boost::unordered::detail::rebind_wrap<boost::unordered::unordered_map<int,int>::value_allocator,boost::unordered::detail::ptr_node<boost::unordered::detail::map<boost::unordered::unordered_map<int,int>::value_allocator,int,boost::hash<int>,stlpd_std::equal_to<int>>::value_type>>::type ]
C:\Code\work\cmake-gfe-dev\build-vc7\third_party\boost\1.48.0\include\boost\unordered\detail\allocator_helpers.hpp(434) : while compiling class-template member function 'boost::unordered::detail::rebind_wrap<Alloc,T>::type boost::unordered::detail::allocator_traits<boost::unordered::detail::rebind_wrap<Alloc,T>::type>::select_on_container_copy_construction(const stlpd_std::allocator<_Tp> &)' with [
Alloc=boost::unordered::unordered_map<int,int>::value_allocator,
T=boost::unordered::detail::ptr_node<boost::unordered::detail::map<boost::unordered::unordered_map<int
,int>::value_allocator,int,boost::hash<int>,stlpd_std::equal_to<int>>::value_type>,
_Tp=boost::unordered::detail::ptr_node<boost::unordered::detail::map<boost::unordered::unordered_map<int,int>::value_allocator,int,boost::hash<int>,stlpd_std::equal_to<int>>::value_type> ]
C:\Code\work\cmake-gfe-dev\build-vc7\third_party\boost\1.48.0\include\boost\unordered\detail\unique.hpp(106) : see reference to class template instantiation 'boost::unordered::detail::allocator_traits<Alloc>' being compiled with [
Alloc=boost::unordered::detail::rebind_wrap<boost::unordered::unordered_map<int,int>::value_allocator,boost::unordered::detail::ptr_node<boost::unordered::detail::map<boost::unordered::unordered_map<int,int>::value_allocator,int,boost::hash<int>,stlpd_std::equal_to<int>>::value_type>>::type ]
C:\Code\work\cmake-gfe-dev\build-vc7\third_party\boost\1.48.0\include\boost\unordered\detail\unique.hpp(150) : see reference to class template instantiation 'boost::unordered::detail::pick_node<A,T>' being compiled with [ A=boost::unordered::unordered_map<int,int>::value_allocator,
T=boost::unordered::detail::map<boost::unordered::unordered_map<int,int>::value_allocator,int,boost::hash<int>,stlpd_std::equal_to<int>>::value_type ]
C:\Code\work\cmake-gfe-dev\build-vc7\third_party\boost\1.48.0\include\boost\unordered\unordered_map.hpp(66) : see reference to class template instantiation 'boost::unordered::detail::map<A,K,H,P>' being compiled with [ A=boost::unordered::unordered_map<int,int>::value_allocator, K=int, H=boost::hash<int>, P=stlpd_std::equal_to<int> ] c:\Code\work\cmake-gfe-dev\server\common\gmsdblib\gdgalquery.h(40) : see reference to class template instantiation 'boost::unordered::unordered_map<K,T>' being compiled with [ K=int, T=int ] C:\Code\work\cmake-gfe-de v\build-vc7\third_party\stlport\5.2.1\include\stlport\stl\_locale.h(349) : see reference to class template instantiation 'stlpd_std::money_put<_CharT,_OutputIter>' being compiled with [ _CharT=char,
_OutputIter=stlpd_std::ostreambuf_iterator<char,stlpd_std::char_traits<char>> ]
C:\Code\work\cmake-gfe-dev\build-vc7\third_party\stlport\5.2.1\include\stlport\stl\_locale.h(349) : see reference to class template instantiation 'stlpd_std::time_get<_Ch,_InIt>' being compiled with [ _Ch=char,
_InIt=stlpd_std::istreambuf_iterator<char,stlpd_std::char_traits<char>> ]
C:\Code\work\cmake-gfe-dev\build-vc7\third_party\stlport\5.2.1\include\stlport\stl\_locale.h(349) : see reference to class template instantiation 'stlpd_std::time_put<_Ch,_OutIt>' being compiled with [ _Ch=char,
_OutIt=stlpd_std::ostreambuf_iterator<char,stlpd_std::char_traits<char>> ]
C:\Code\work\cmake-gfe-dev\build-vc7\third_party\stlport\5.2.1\include\stlport\stl\_locale.h(349) : see reference to class template instantiation 'stlpd_std::money_get<_CharT,_InputIter>' being compiled with [ _CharT=wchar_t,
_InputIter=stlpd_std::istreambuf_iterator<wchar_t,stlpd_std::char_traits<wchar_t>> ]
C:\Code\work\cmake-gfe-dev\build-vc7\third_party\stlport\5.2.1\include\stlport\stl\_locale.h(349) : see reference to class template instantiation 'stlpd_std::money_put<_CharT,_OutputIter>' being compiled with [ _CharT=wchar_t,
_OutputIter=stlpd_std::ostreambuf_iterator<wchar_t,stlpd_std::char_traits<wchar_t>> ]
C:\Code\work\cmake-gfe-dev\build-vc7\third_party\stlport\5.2.1\include\stlport\stl\_locale.h(349) : see reference to class template instantiation 'stlpd_std::time_get<_Ch,_InIt>' being compiled with [ _Ch=wchar_t, _InIt=stlpd_std::istreambuf_iterator<wc har_t,stlpd_std::char_traits<wchar_t>> ]
C:\Code\work\cmake-gfe-dev\build-vc7\third_party\stlport\5.2.1\include\stlport\stl\_locale.h(349) : see reference to class template instantiation 'stlpd_std::time_put<_Ch,_OutIt>' being compiled with [ _Ch=wchar_t,
_OutIt=stlpd_std::ostreambuf_iterator<wchar_t,stlpd_std::char_traits<wchar_t>> ]
C:\Code\work\cmake-gfe-dev\build-vc7\third_party\stlport\5.2.1\include\stlport\stl\_locale.h(294) : see reference to function template instantiation '_Facet *stlpd_std::priv::_UseFacet<_Facet>(const stlpd_std::locale &,const _Facet *)' being compiled with [ _Facet=stlpd_std::ctype<wchar_t> ]
C:\Code\work\cmake-gfe-dev\build-vc7\third_party\stlport\5.2.1\include\stlport\stl\_num_put.c(135) : see reference to function template instantiation 'const _Facet &stlpd_std::use_facet<stlpd_std::ctype<wchar_t>>(const stlpd_std::locale &)' being compiled with [ _Facet=stlpd_std::ctype<wchar_t> ]

On 13 February 2012 17:11, Robert Dailey <rcdailey@gmail.com> wrote:
I would really appreciate some insight here, I have no idea what is going on. This is actually preventing company code from compiling, so it's extremely important. If I can't get help here the only thing I can do is just not use boost.
The "call stack" chain for template instantiation provided in my pasted error is confusing. It shows the source of where I create the unordered_map, which is in gdgalquery.h(40), but after that it says that _locale.h is next? How is _locale.h next? That tells me that STL is instantiating my class? Anyone know what is going on?
Sorry, I missed this before. The main problem is that we no longer have Visual C++ 7.1 testers, so regressions for that compiler are quite likely. In this case the problem is with support for C++11 allocators. There's an emulated version of C++11's allocator traits which doesn't seem to work for Visual C++ 7.1. The simplest way to fix that is probably to disable most of the new features for older versions of Visual C++, and hope that everything else works okay. Although it might be possible to get the new features to work on Visual C++ 7.1. There are two possible places where it's failing. First is the has_select_on_container_copy_construction trait, second is the use of SFINAE the disable the function where you saw this error. This detects in an allocator has a has_select_on_container_copy_construction member. Try running this: #include <iostream> #include <boost/unordered_map.hpp> int main() { std::cout << boost::unordered::detail:: has_select_on_container_copy_construction< std::allocator<int> >::value << std::endl; } It it prints '0' the trait has successfully found that std::allocator doesn't have the member, so we know the problem must be in the use of SFINAE, which might be fixable (I don't know how myself, but I think other libraries do it). If it prints '1' the trait failed, and I'm not sure how to fix it.

On Mon, Feb 13, 2012 at 3:28 PM, Daniel James <dnljms@gmail.com> wrote:
On 13 February 2012 17:11, Robert Dailey <rcdailey@gmail.com> wrote:
I would really appreciate some insight here, I have no idea what is going on. This is actually preventing company code from compiling, so it's extremely important. If I can't get help here the only thing I can do is just not use boost.
The "call stack" chain for template instantiation provided in my pasted error is confusing. It shows the source of where I create the unordered_map, which is in gdgalquery.h(40), but after that it says that _locale.h is next? How is _locale.h next? That tells me that STL is instantiating my class? Anyone know what is going on?
Sorry, I missed this before. The main problem is that we no longer have Visual C++ 7.1 testers, so regressions for that compiler are quite likely. In this case the problem is with support for C++11 allocators. There's an emulated version of C++11's allocator traits which doesn't seem to work for Visual C++ 7.1. The simplest way to fix that is probably to disable most of the new features for older versions of Visual C++, and hope that everything else works okay.
Although it might be possible to get the new features to work on Visual C++ 7.1. There are two possible places where it's failing. First is the has_select_on_container_copy_construction trait, second is the use of SFINAE the disable the function where you saw this error. This detects in an allocator has a has_select_on_container_copy_construction member. Try running this:
#include <iostream> #include <boost/unordered_map.hpp>
int main() { std::cout << boost::unordered::detail:: has_select_on_container_copy_construction< std::allocator<int> >::value << std::endl; }
It it prints '0' the trait has successfully found that std::allocator doesn't have the member, so we know the problem must be in the use of SFINAE, which might be fixable (I don't know how myself, but I think other libraries do it). If it prints '1' the trait failed, and I'm not sure how to fix it.
Unfortunately it does print 1 for me :(

On Mon, Feb 13, 2012 at 4:41 PM, Robert Dailey <rcdailey@gmail.com> wrote:
On Mon, Feb 13, 2012 at 3:28 PM, Daniel James <dnljms@gmail.com> wrote:
I would really appreciate some insight here, I have no idea what is going on. This is actually preventing company code from compiling, so it's extremely important. If I can't get help here the only thing I can do is just not use boost.
The "call stack" chain for template instantiation provided in my pasted error is confusing. It shows the source of where I create the unordered_map, which is in gdgalquery.h(40), but after that it says
On 13 February 2012 17:11, Robert Dailey <rcdailey@gmail.com> wrote: that
_locale.h is next? How is _locale.h next? That tells me that STL is instantiating my class? Anyone know what is going on?
Sorry, I missed this before. The main problem is that we no longer have Visual C++ 7.1 testers, so regressions for that compiler are quite likely. In this case the problem is with support for C++11 allocators. There's an emulated version of C++11's allocator traits which doesn't seem to work for Visual C++ 7.1. The simplest way to fix that is probably to disable most of the new features for older versions of Visual C++, and hope that everything else works okay.
Although it might be possible to get the new features to work on Visual C++ 7.1. There are two possible places where it's failing. First is the has_select_on_container_copy_construction trait, second is the use of SFINAE the disable the function where you saw this error. This detects in an allocator has a has_select_on_container_copy_construction member. Try running this:
#include <iostream> #include <boost/unordered_map.hpp>
int main() { std::cout << boost::unordered::detail:: has_select_on_container_copy_construction< std::allocator<int> >::value << std::endl; }
It it prints '0' the trait has successfully found that std::allocator doesn't have the member, so we know the problem must be in the use of SFINAE, which might be fixable (I don't know how myself, but I think other libraries do it). If it prints '1' the trait failed, and I'm not sure how to fix it.
Unfortunately it does print 1 for me :(
Anyone know of a way to fix this for MSVC 7.1?

El 14/02/2012 19:00, Robert Dailey escribió:
Unfortunately it does print 1 for me :(
Anyone know of a way to fix this for MSVC 7.1?
There is a allocator_traits class in Boost.Container that worksin MSVC7.1 (it has problems with some GCC versions with some overload detection) as I test all my libraries with this compiler. The implementation is not optimal for compilers with advanced SFINAE expressions based on decltype (it's in my to-do list, but the portable implementation is also valid in those compilers). Ion

El 14/02/2012 23:50, Ion Gaztañaga escribió:
El 14/02/2012 19:00, Robert Dailey escribió:
Unfortunately it does print 1 for me :(
Anyone know of a way to fix this for MSVC 7.1?
There is a allocator_traits class in Boost.Container that worksin MSVC7.1
Just a note, the implementation was committed for Boost 1.49. Ion

2012/2/14 Ion Gaztañaga <igaztanaga@gmail.com>:
El 14/02/2012 23:50, Ion Gaztañaga escribió:
El 14/02/2012 19:00, Robert Dailey escribió:
Unfortunately it does print 1 for me :(
Anyone know of a way to fix this for MSVC 7.1?
There is a allocator_traits class in Boost.Container that worksin MSVC7.1
Just a note, the implementation was committed for Boost 1.49.
I've changed unordered in trunk to use it for old versions of visual c++. Although it's untested and I've no idea if it'll work. It should be possible to just copy the relevant header into boost 1.48. It's at: http://svn.boost.org/svn/boost/trunk/boost/unordered/detail/allocator_helper...

On Thu, Feb 16, 2012 at 3:39 PM, Daniel James <dnljms@gmail.com> wrote:
2012/2/14 Ion Gaztañaga <igaztanaga@gmail.com>:
El 14/02/2012 23:50, Ion Gaztañaga escribió:
El 14/02/2012 19:00, Robert Dailey escribió:
Unfortunately it does print 1 for me :(
Anyone know of a way to fix this for MSVC 7.1?
There is a allocator_traits class in Boost.Container that worksin MSVC7.1
Just a note, the implementation was committed for Boost 1.49.
I've changed unordered in trunk to use it for old versions of visual c++. Although it's untested and I've no idea if it'll work. It should be possible to just copy the relevant header into boost 1.48. It's at:
http://svn.boost.org/svn/boost/trunk/boost/unordered/detail/allocator_helper...
I replaced my allocator_helpers.hpp with yours and I get: C:\Code\work\cmake-gfe-dev\build-vc7\third_party\boost\1.48.0\include\boost\unordered\detail\allocator_helpers.hpp(47) : fatal error C1083: Cannot open include file: 'boost/container/allocator/allocator_traits.hpp': No such file or directory

On 16 Feb 2012 23:15, "Robert Dailey" <rcdailey@gmail.com> wrote:
On Thu, Feb 16, 2012 at 3:39 PM, Daniel James <dnljms@gmail.com> wrote:
I've changed unordered in trunk to use it for old versions of visual c++. Although it's untested and I've no idea if it'll work. It should be possible to just copy the relevant header into boost 1.48. It's at:
http://svn.boost.org/svn/boost/trunk/boost/unordered/detail/allocator_helper...
I replaced my allocator_helpers.hpp with yours and I get:
Sorry, that should have been 1.49 since container's allocator_traits is new.

On Thu, Feb 16, 2012 at 5:55 PM, Daniel James <dnljms@gmail.com> wrote:
On 16 Feb 2012 23:15, "Robert Dailey" <rcdailey@gmail.com> wrote:
On Thu, Feb 16, 2012 at 3:39 PM, Daniel James <dnljms@gmail.com> wrote:
I've changed unordered in trunk to use it for old versions of visual c++. Although it's untested and I've no idea if it'll work. It should be possible to just copy the relevant header into boost 1.48. It's at:
http://svn.boost.org/svn/boost/trunk/boost/unordered/detail/allocator_helper...
I replaced my allocator_helpers.hpp with yours and I get:
Sorry, that should have been 1.49 since container's allocator_traits is new.
When will 1.49 be released? I may just have to wait for 1.49 to come around, hopefully your fix will be included in that release.

On 17 February 2012 00:05, Robert Dailey <rcdailey@gmail.com> wrote:
On Thu, Feb 16, 2012 at 5:55 PM, Daniel James <dnljms@gmail.com> wrote:
Sorry, that should have been 1.49 since container's allocator_traits is new.
When will 1.49 be released? I may just have to wait for 1.49 to come around, hopefully your fix will be included in that release.
1.49 is supposed to be released at the start of next week, I don't know if it's happening though. This won't be included in 1.49, it's too late.

Another interesting point is that if I remove the usage of STLport (both on the include path and preprocessor), this is a non-issue. --------- Robert Dailey On Thu, Feb 16, 2012 at 6:15 PM, Daniel James <dnljms@gmail.com> wrote:
On 17 February 2012 00:05, Robert Dailey <rcdailey@gmail.com> wrote:
On Thu, Feb 16, 2012 at 5:55 PM, Daniel James <dnljms@gmail.com> wrote:
Sorry, that should have been 1.49 since container's allocator_traits is new.
When will 1.49 be released? I may just have to wait for 1.49 to come around, hopefully your fix will be included in that release.
1.49 is supposed to be released at the start of next week, I don't know if it's happening though. This won't be included in 1.49, it's too late.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
participants (3)
-
Daniel James
-
Ion Gaztañaga
-
Robert Dailey