【发布时间】:2021-01-11 04:14:53
【问题描述】:
我有一个模板函数:
template<class... Args>
void foo(Args&&... args)
{
boo<std::decay_t<Args>...>(std::forward<Args>(args)...);
}
现在我想做的是像这样多次调用 foo 函数:
int value = 123;
const int& cr_value = value;
foo(value );
foo(std::cref(value ));
在第一种情况下我调用boo<int> 在第二种情况下调用boo<std::const_reference_wrapper<int>>。
有没有办法在不显式使用get函数包中的每个参数的情况下自动“取消引用”reference_wrapper?
这样做的原因是我想在第二种情况下调用boo<const int&>,而不是boo<std::const_reference_wrapper<int>>
【问题讨论】:
标签: c++ template-argument-deduction