1
3
问题是由参考衰减引起的:(正确的术语是“参考崩溃”)。
代码中问题的答案是f()是:
因为参考衰变,它变成了:
如您所料,这当然会与定义如下的任何内容不明确:
这可能有效(固定版本):
原因是这种引用衰减只发生在T上模板化的函数中。在这种情况下,您的指针类是,但构造函数实际上不是模板本身,因此T&对于T&版本来说永远不是有效的T。 第一个版本仍然存在与代码相同的问题,因为的地址\只是使用t作为指针的模板参数。我们实际上需要原始类型。 |
apetrai · 我应该如何假设算法使用哪种迭代器类别? 2 年前 |
ridiculous_fish · std::是否保证短路? 2 年前 |
Fabio · 在c中将指针赋给常数指针++ 2 年前 |
johnco3 · 初始化固定C数组成员结构 6 年前 |
mans · 为什么出现此错误:constexpr在此处无效 6 年前 |
juztcode · 在C++中尝试捕获-创建了多少个对象 6 年前 |
Steven Scott · 忽略元素的基于范围的for循环 6 年前 |