>c:\program files\microsoft visual studio 10.0\vc\include\algorithm(4494): error C2678:
binary '=' : no operator found which takes a left-hand operand of type 'const
std::basic_string<_Elem,_Traits,_Ax>' (or there is no acceptable conversion)
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]
c:\program files\microsoft visual studio 10.0\vc\include\xstring(707): could be
'std::basic_string<_Elem,_Traits,_Ax> &std::basic_string<_Elem,_Traits,_Ax>::operator =
(std::basic_string<_Elem,_Traits,_Ax> &&)'
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]
c:\program files\microsoft visual studio 10.0\vc\include\xstring(762): or 'std::basic_string<_Elem,_Traits,_Ax> &std::basic_string<_Elem,_Traits,_Ax>::operator =(const std::basic_string<_Elem,_Traits,_Ax> &)'
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]
c:\program files\microsoft visual studio 10.0\vc\include\xstring(767): or
'std::basic_string<_Elem,_Traits,_Ax> &std::basic_string<_Elem,_Traits,_Ax>::operator =
(const _Elem *)'
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]
c:\program files\microsoft visual studio 10.0\vc\include\xstring(772): or
'std::basic_string<_Elem,_Traits,_Ax> &std::basic_string<_Elem,_Traits,_Ax>::operator =
(_Elem)'
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]
while trying to match the argument list '(const
std::basic_string<_Elem,_Traits,_Ax>, const std::basic_string<_Elem,_Traits,_Ax>)'
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]
c:\program files\microsoft visual studio 10.0\vc\include\algorithm(4522) : see
reference to function template instantiation '_OutIt
std::_Set_intersection<_InIt1,_InIt2,_OutIt>(_InIt1,_InIt1,_InIt2,_InIt2,_OutIt)' being
compiled
with
[
_OutIt=std::_Tree_const_iterator<std::_Tree_val<std::_Tset_traits<std::string,std::less<std ::string>,std::allocator<std::string>,false>>>,
_InIt1=std::_Tree_unchecked_const_iterator<std::_Tree_val<std::_Tset_traits<std::string,std::less<std::string>,std::allocator<std::string>,false>>>,
_InIt2=std::_Tree_unchecked_const_iterator<std::_Tree_val<std::_Tset_traits<std::string,std ::less<std::string>,std::allocator<std::string>,false>>>
]
c:\program files\microsoft visual studio 10.0\vc\include\algorithm(4549) : see
reference to function template instantiation '_OutIt
std::_Set_intersection1<std::_Tree_unchecked_const_iterator<_Mytree>,std::_Tree_unchecked_
const_iterator<_Mytree>,_OutIt>
(_InIt1,_InIt1,_InIt2,_InIt2,_OutIt,std::tr1::true_type)' being compiled
with
[
_OutIt=std::_Tree_const_iterator<std::_Tree_val<std::_Tset_traits<std::string,std::less<std ::string>,std::allocator<std::string>,false>>>,
_Mytree=std::_Tree_val<std::_Tset_traits<std::string,std::less<std::string>,std::allocator<
std::string>,false>>,
_InIt1=std::_Tree_unchecked_const_iterator<std::_Tree_val<std::_Tset_traits<std::string,std
::less<std::string>,std::allocator<std::string>,false>>>,
_InIt2=std::_Tree_unchecked_const_iterator<std::_Tree_val<std::_Tset_traits<std::string,std ::less<std::string>,std::allocator<std::string>,false>>>
]
c:\qc\qc_daq_development\qc\qc_daq\src\hfgui3\expscan.cpp(458) : see reference to
function template instantiation '_OutIt
std::set_intersection<std::_Tree_const_iterator<_Mytree>,std::_Tree_const_iterator<_Mytree> ,std::_Tree_const_iterator<_Mytree>>(_InIt1,_InIt1,_InIt2,_InIt2,_OutIt)' being
compiled
with
[
_OutIt=std::_Tree_const_iterator<std::_Tree_val<std::_Tset_traits<std::string,std::less<std
::string>,std::allocator<std::string>,false>>>,
_Mytree=std::_Tree_val<std::_Tset_traits<std::string,std::less<std::string>,std::allocator<
std::string>,false>>,
_InIt1=std::_Tree_const_iterator<std::_Tree_val<std::_Tset_traits<std::string,std::less<std
::string>,std::allocator<std::string>,false>>>,
_InIt2=std::_Tree_const_iterator<std::_Tree_val<std::_Tset_traits<std::string,std::less<std
::string>,std::allocator<std::string>,false>>>
Выше упомянуто сообщение об ошибке, сгенерированное при компиляции программы с Visual Studio 2010, поскольку оно хорошо работает в Visual Studio 2003, поэтому я действительно не могу выяснить проблему !!! любая помощь или предложение будут высоко оценены !!! Заранее спасибо.
Я вставляю строку, которая выдает сообщение об ошибке выше.
В случае, если кто-то больше информации, пожалуйста, дайте мне знать, я буду благодарен вам, если вы потратите свое драгоценное время, помогая мне исправить это.
Большое спасибо заранее
SET_STR::iterator itOut =
std::set_intersection(setType.begin(),setType.end(),setCategory.begin(),setCategory.end(),s
etFilter.begin());
setFilter.erase(itOut,setFilter.end()); //erase the rest of the set
Definations:
typedef std::set<string> SET_STR;
typedef std::map<string, SET_STR > MAP_STR_SETSTR;
typedef std::map<char, SET_STR > MAP_CHAR_SETSTR;
typedef std::map<string,SfvarInfo> MAP_STR_FVARINFO;
CritSec m_csVarAccess;
MAP_STR_VAL m_mapVar;
MAP_STR_VAL m_mapFvarOverrides;
MAP_STR_VAL m_mapFvarOrig;
MAP_STR_FVARINFO m_mapFvarInfo;
MAP_STR_SETSTR m_mapCategoryFvar;
MAP_CHAR_SETSTR m_mapTypeFvar;
MAP_STR_VAL m_mapLoadedFvar;
UserParam<string> m_sScanFvar;
UserParam<string> m_sFvarFilterType;
UserParam<string> m_sFvarFilterCategory;
SET_STR setType(m_mapTypeFvar[m_sFvarFilterType.c_str()[0]]);
SET_STR setCategory(m_mapCategoryFvar[m_sFvarFilterCategory]);