Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-1458

C++ common compile error in VC9 Release mode

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • M4
    • 0.6
    • C++ Broker, C++ Client
    • None
    • Windows, Visual Studio 2008 (VC9)

    Description

      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.

      Attachments

        1. QPID-1458.diff
          1 kB
          Clifford Jansen

        Activity

          People

            shuston Stephen D. Huston
            shuston Stephen D. Huston
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: