c – gmock和转发声明的类

假设我有这个类,类型管理器在Base.h中向前声明.

#include <Base.h>

class MockBase : public Base
{
public:
    MOCK_CONST_METHOD0( manager,const Manager&( ) );
    ...
};

我不打算在我的测试中使用这个方法,所以我不想在测试文件中包含Manager类的定义.

但我认为,虽然编译gmock尝试准备错误消息,并深入其内部它需要管理器变量的地址,我有一个错误

error C2027: use of undefined type ‘Manager’
\external\googlemock\gtest\include\gtest\gtest-printers.h 146 1

我可以以某种方式避免包含具有我不会使用的方法的前向声明类型定义的文件吗?

解决方法

我通过定义PrintTo函数解决了这个问题,因此gtest不会尝试使用导致问题的TypeWithoutFormatter函数.这是不幸的,我不确定什么是正确的解决方案.

namespace Foo { void PrintTo(const Bar& x,::std::ostream* os) { *os << "Bar " << &x; }}

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...