C++ common compile error in VC9 Release mode
--------------------------------------------
Key: QPID-1458
URL: https://issues.apache.org/jira/browse/QPID-1458
Project: Qpid
Issue Type: Bug
Components: C++ Broker, C++ Client
Affects Versions: M4
Environment: Windows, Visual Studio 2008 (VC9)
Reporter: Steve Huston
When building C++ common library in Release mode, the following compile errors
appear:
1>C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\xutility(419) :
error C2664: 'qpid::InlineAllocator<BaseAllocator,Max>::InlineAllocator(const
qpid::InlineAllocator<BaseAllocator,Max> &)' : cannot convert parameter 1 from
'qpid::InlineAllocator<BaseAllocator,Max>' to 'const
qpid::InlineAllocator<BaseAllocator,Max> &'
1> with
1> [
1> BaseAllocator=std::allocator<std::_Aux_cont>,
1> Max=3
1> ]
1> and
1> [
1>
BaseAllocator=std::allocator<qpid::Range<qpid::framing::SequenceNumber>>,
1> Max=3
1> ]
1> and
1> [
1> BaseAllocator=std::allocator<std::_Aux_cont>,
1> Max=3
1> ]
1> Reason: cannot convert from
'qpid::InlineAllocator<BaseAllocator,Max>' to 'const
qpid::InlineAllocator<BaseAllocator,Max>'
1> with
1> [
1>
BaseAllocator=std::allocator<qpid::Range<qpid::framing::SequenceNumber>>,
1> Max=3
1> ]
1> and
1> [
1> BaseAllocator=std::allocator<std::_Aux_cont>,
1> Max=3
1> ]
1> No user-defined-conversion operator available that can perform this
conversion, or the operator cannot be called
1> C:\Program Files (x86)\Microsoft Visual Studio
9.0\VC\include\xutility(417) : while compiling class template member function
'std::_Container_base_aux_alloc_real<_Alloc>::_Container_base_aux_alloc_real(_Alloc)'
1> with
1> [
1>
_Alloc=qpid::InlineAllocator<std::allocator<qpid::Range<qpid::framing::SequenceNumber>>,3>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio
9.0\VC\include\vector(421) : see reference to class template instantiation
'std::_Container_base_aux_alloc_real<_Alloc>' being compiled
1> with
1> [
1>
_Alloc=qpid::InlineAllocator<std::allocator<qpid::Range<qpid::framing::SequenceNumber>>,3>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio
9.0\VC\include\vector(439) : see reference to class template instantiation
'std::_Vector_val<_Ty,_Alloc>' being compiled
1> with
1> [
1> _Ty=qpid::Range<qpid::framing::SequenceNumber>,
1>
_Alloc=qpid::InlineAllocator<std::allocator<qpid::Range<qpid::framing::SequenceNumber>>,3>
1> ]
1> .\qpid/InlineVector.h(42) : see reference to class template
instantiation 'std::vector<_Ty,_Ax>' being compiled
1> with
1> [
1> _Ty=qpid::Range<qpid::framing::SequenceNumber>,
1>
_Ax=qpid::InlineAllocator<std::allocator<qpid::Range<qpid::framing::SequenceNumber>>,3>
1> ]
1> .\qpid/RangeSet.h(168) : see reference to class template
instantiation 'qpid::InlineVector<T,Max>' being compiled
1> with
1> [
1> T=qpid::Range<qpid::framing::SequenceNumber>,
1> Max=3
1> ]
1>
c:\ace\exported\qpid\trunk\qpid\cpp\src\qpid\framing\SequenceSet.h(31) : see
reference to class template instantiation 'qpid::RangeSet<T>' being compiled
1> with
1> [
1> T=qpid::framing::SequenceNumber
1> ]
This problem does not occur with VC8, nor with VC9 in Debug mode.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.