比较 gtest 中的 ptr 和 nullptr

新手上路,请多包涵

有一些代码:

 EXPECT_NE(nullptr,ptr);

我得到以下编译错误:

 'operator <<' is ambiguous

could be 'std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<<void>(std::nullptr_t)'
or       'std::basic_ostream<char,std::char_traits<char>> &testing::internal2::operator <<<char,std::char_traits<char>,T>(std::basic_ostream<char,std::char_traits<char>> &,const T &)'

这可能是库版本问题吗?

原文由 Игорь Пугачев 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 692
2 个回答

如果你想更明确,你也可以使用

EXPECT_TRUE(ptr != nullptr);

(这是我通常做的)

顺便提一句。有趣的是,在我的工作项目中,我仍然必须使用 C++98(仍在为 Sun 和 AIX 构建,尽管它很快就会消失),我最终创建了自己的 NullPtrT 类和 NullPtr 通用库中的对象,它实际上与 gtest EXPECT_EQEXPECT_NE 宏一起使用。这样我就可以做到

EXPECT_NE(NullPtr, ptr);

我不记得我是如何完成这项工作的:)

原文由 EmDroid 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题