Vit*_*meo 6 c++ return auto return-type-deduction c++14
我正在将部分代码库从C++ 11升级到C++ 14.我有几个数学实用程序函数,它们接受多个输入参数并返回单个值类型std::common_type_t<...>
.
我想用简单的方法替换显式返回值auto
.我认为类型推导确实试图找到这些情况下的常见类型.有什么情况不行吗?
转换所有出现的返回值是否总是安全的?std::common_type_T<...>
auto
功能示例:
template<typename T1, typename T2, typename T3>
std::common_type_t<T1, T2, T3> getClamped(T1 mValue, T2 mMin, T3 mMax)
{
return mValue < mMin ? mMin : (mValue > mMax ? mMax : mValue);
}
Run Code Online (Sandbox Code Playgroud)
不,它并不总是安全的.
我假设你的数学函数比这更多,但这里有一个例子,结果会有所不同.
template <class T, class U>
std::common_type_t<T, U> add(T t, U u) { return t + u; }
Run Code Online (Sandbox Code Playgroud)
如果用两个char
s 调用此函数,结果将是a char
.你会自动推断出返回类型,它会产生一个int
.
归档时间: |
|
查看次数: |
360 次 |
最近记录: |