Payteq

Good Afternoon,

I am getting the following compile error

C2752: 'std::_Ptr_cat_helper<_T1,_T2>' : more than one partial specialization matches the template argument list c:\program files\microsoft visual studio 8\vc\include\memory 731

When I double click it takes me to this line of code

_STD _Ptr_cat(_First, _First), _STD _Range_checked_iterator_tag());

Which is a line from this section

template<class _FwdIt,

class _Diff,

class _Tval,

class _Alloc> inline

void unchecked_uninitialized_fill_n(_FwdIt _First, _Diff _Count,

const _Tval& _Val, _Alloc& _Al)

{ // copy _Count *_Val to raw _First, using _Al

_STD _Uninit_fill_n(_First, _Count, _Val, _Al,

_STD _Ptr_cat(_First, _First), _STD _Range_checked_iterator_tag());

}

template<class _FwdIt,

class _Diff,

class _Tval,

class _Alloc> inline

void checked_uninitialized_fill_n(_FwdIt _First, _Diff _Count,

const _Tval& _Val, _Alloc& _Al)

{ // copy _Count *_Val to raw _First, using _Al

_STD _Uninit_fill_n(_First, _Count, _Val, _Al,

_STD _Ptr_cat(_First, _First), _STD _Checked_cat(_First));

}

Definition

template<class _T1, class _T2> inline

typename _Ptr_cat_helper<_T1, _T2>::_Ptr_cat __CLRCALL_OR_CDECL _Ptr_cat(_T1&, _T2&)

{

typename _Ptr_cat_helper<_T1, _T2>::_Ptr_cat _Cat;

return (_Cat);

}

I am new to VC2005 - so please excuse all my silly questions.

Kind Regards

Olivia




Re: Visual C++ Language C2752

einaros

Are you calling std::fill anywhere in your code





Re: Visual C++ Language C2752

Payteq

Hello Einaros,

Yes I am.

template<class _Ty,

class _Tval> inline

void _Uninit_fill(_Ty *_First, _Ty *_Last, const _Tval& _Val,

_Scalar_ptr_iterator_tag)

{ // copy _Val throughout raw [_First, _Last), scalar type

std::fill(_First, _Last, _Val);

}





Re: Visual C++ Language C2752

einaros

Is that your code, or one of the standard headers It looks like the latter, and that would be an unlikely cause of the problem. You need to find the point in *your* code where you are trying to instantiate a template with parameters which are causing something within the standard library to break down.