Привет, я получаю ниже ошибку компиляции с классом DGMessage при выполнении насмешки над Google, хотя я перегружал класс XYZMessage с помощью оператора '='. Пожалуйста, помогите исправить эту проблему.
> t\debug\include\gmock\gmock-actions.h(813): error C2679: binary '=':
> no operator found which takes a right-hand operand of type 'const A'
> (or there is no acceptable conversion) 3> with 3> [ 3>
> A=XYZMessage 3> ] 3>c:\program files (x86)\windows
> kits\10\include\10.0.16299.0\shared\guiddef.h(27): note: could be
> '_GUID &_GUID::operator =(_GUID &&)' 3>c:\program files (x86)\windows
> kits\10\include\10.0.16299.0\shared\guiddef.h(27): note: or
> '_GUID &_GUID::operator =(const _GUID &)'
> 3>c:\dg\git\sa3rdparty\crossplatform\googletest\out\googletest-release-1.8.0\windows\x86_64\msvc15.0\static_mt\debug\include\gmock\gmock-actions.h(813):
> note: while trying to match the argument list '(GUID, const A)' 3>
> with 3> [ 3> A=XYZMessage 3> ]
> 3>c:\dg\git\sa3rdparty\crossplatform\googletest\out\googletest-release-1.8.0\windows\x86_64\msvc15.0\static_mt\debug\include\gmock\gmock-actions.h(446):
> note: see reference to function template instantiation 'void
> testing::internal::SetArgumentPointeeAction<4,XYZMessage,false>::Perform<void,std::tuple<A1,A2,A3,A4,A5>>(const
> ArgumentTuple &) const' being compiled 3> with 3> [ 3>
> A1=LPCTSTR, 3> A2=XYZClientInternal *, 3>
> A3=XYZMessage &, 3> A4=XYZMessage &, 3> A5=GUID *,
> 3> ArgumentTuple=std::tuple<LPCTSTR ,XYZClientInternal
> *,XYZMessage &,XYZMessage &,_GUID *>
'=' перегруженная операционная функция XYZMessage:
XYZMessage& operator=(const XYZMessage& m) // Binary operator overloading func.
{
m_header = m.m_header;
m_items = m.m_items;
m_logger= m.m_logger;
m_pMessageCrypto = m.m_pMessageCrypto;
return *this;
}