gpt4 book ai didi

c++ - 使用 C++14 的自动函数类型返回推导代替 std::common_type 总是安全的吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:27:17 26 4
gpt4 key购买 nike

我正在将我的部分代码库从 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);
}

最佳答案

不,它并不总是安全的。

我假设您的数学函数的作用不止于此,但这是一个结果会有所不同的示例。

template <class T, class U>
std::common_type_t<T, U> add(T t, U u) { return t + u; }

如果您使用两个 char 调用此函数,结果将是一个 char。您会自动推断返回类型吗,它会产生一个 int

关于c++ - 使用 C++14 的自动函数类型返回推导代替 std::common_type 总是安全的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25874735/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com