Boost logo

Boost :

Subject: Re: [boost] unordered_map failing to compile on MSVC7.1 using STLport
From: Robert Dailey (rcdailey_at_[hidden])
Date: 2012-02-10 14:13:33


On Fri, Feb 10, 2012 at 1:05 PM, Robert Dailey <rcdailey_at_[hidden]> 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>
        ]


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk