使用ReturnArg时GMock正在删除隐式转换警告
本文介绍了使用ReturnArg时GMock正在删除隐式转换警告的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
给定以下模拟方法
和以下用法
由于szBuffer隐式转换为int的返回类型,将在ReturnArg中生成警告。
以下是代码示例:
以下是编译器警告:
googletestgooglemockincludegmock/gmock-more-actions.h(165):警告C4267:‘Return’:从‘SIZE_t’转换为‘INT’,可能会丢失数据(编译源文件TestMain.cpp)
是否有任何方法可以使GMock使用STATIC_CAST更改返回类型以消除类型转换警告?
推荐答案
ReturnArg<k>
是一个Google模拟操作(reference),它返回被模拟函数的第k
个参数。由于在本例中,该函数的返回类型为int
,而第一个参数的类型为size_t
,因此会生成有关潜在范围缩小警告的警告。
注入显式类型转换的最简单方法是编写一个自定义操作:
可以这样使用该操作:
这篇关于使用ReturnArg时GMock正在删除隐式转换警告的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!