我正在使用 C++11,我有一些代码相当于
template<typename T1, typename T2>
auto add_func( const T1& lhs, const T2& rhs )
{
return lhs + rhs;
}
float
当我分别使用和int
asT1
和as编译此代码时,T2
我收到警告说转换可能会导致一些数据丢失,这是很自然的。
我的问题是,此警告的每个实例都将指向return lhs + rhs;
使警告几乎无用的行。
有没有办法(理想情况下是一种可移植的方式)在调用函数而不是在模板内部重新抛出这些警告?
我正在使用 Visual Studio 2012,但可移植的方式会更好
编辑:
更清楚地说:我知道这个警告是正确的,并且是由滥用此代码引起的,问题是我希望编译器为我找到发生这种滥用的地方。现在,如果出现此警告,我必须手动验证每次调用add_func
,这对我来说似乎不太易于维护。
我希望这现在更有意义