Google Mock: ошибка C2679: бинарный '=': оператор не найден, который принимает правый операнд типа 'const A' - PullRequest
0 голосов
/ 17 октября 2019

Привет, я получаю ниже ошибку компиляции с классом 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;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...