gpt4 book ai didi

c++ - 提示编译器在使用 auto 时按引用返回,而不是使用 ->

转载 作者:太空狗 更新时间:2023-10-29 20:49:55 24 4
gpt4 key购买 nike

<分区>

我有一个将返回类型设置为自动的函数。如果我想通过引用返回一些东西,通常我可以简单地用 -> T& 提示编译器。但是,在我的特定情况下,我有一个模板化函数,它具有通过 if constexpr 表达式定义的不同返回路径。像这样:

template<typename T>
auto fn(T& arg)
{
if constexpr (std::is_same_v<T, int>)
return;
else
return arg;
}

我想在第二种情况下通过引用返回arg。有没有办法提示编译器函数体内的类型?我知道我可以执行 std::ref(arg),但是返回的类型是一个引用包装器,所以如果我执行 auto& res = fn(arg),当我尝试使用时它就会失败它作为一个实际的引用。基本上我想要通过 -> T& 获得的普通行为,但是对于可以返回各种类型的函数,所以我想在函数体内提供提示。

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