【发布时间】:2019-06-11 16:42:12
【问题描述】:
我正在尝试深入理解模板参数推导。
我不明白的一点是,我应该如何应用标准中的规则
here 用于 A 和 P 类型
对于以下情况(遗憾的是,cppreference.com 上没有示例,请参阅下面的相关部分)
template<typename T>
void foo(T t);
void call_with_reference(int& r) {
foo(r)
}
-
P不是 reference typ:
这给了P := T A := int&
-> 匹配 P 和 A 得到:T 被推导出为 int&
这显然是错误的。标准中规定来自A 的引用被删除 的规则在哪里?非常感谢您提供一个不含糊的、明确的答案。
【问题讨论】:
-
P 和 A 与示例有何关系?也许在问题中包含来自标准的引用
标签: c++ templates c++17 template-argument-deduction