所以我有这个小问题。我有一个我想模拟的课程,但我遇到了一个错误。有问题的方法是返回一个指向 std::list 对象指针的指针。下面是一些复制问题的代码:
#include <ByteBuffer.h>
. . .
class Foo {
public:
std::list<ByteBuffer*>* getStuff() { return new std::list<ByteBuffer*>(); }
};
class MockFoo : public Foo {
public:
MOCK_METHOD0(getStuff, std::list<ByteBuffer>*());
};
TEST_F(FooTest, shouldDoStuff) {
MockFoo* mfoo = new MockFoo();
std::list<ByteBuffer*>* plist = new std::list<ByteBuffer*>();
EXPECT_CALL(*mfoo, getStuff()).WillOnce(Return(plist));
}
当我编译它时,我收到以下错误:
/usr/local/include/gmock/gmock-actions.h:491: error: no matching function for call to ‘ImplicitCast_(std::list<zios::common::ByteBuffer*, std::allocator<zios::common::ByteBuffer*> >*&)’
make: *** [Debug/FooTest.o] Error 1
有人可以告诉我是什么原因造成的吗?我究竟做错了什么?