![]() |
1
6
因为这不是扣款规则的工作方式。他们努力推断出尽可能多的函数参数类型匹配。临时文件不一定是常量,它只能绑定到常量引用。
但函数模板不接受常量引用,而是接受非常量左值引用。所以没有
正确的解决方案是使用转发引用(对推导模板参数的右值引用):
现在
顺便说一句,如果您感到好奇,如果您将const直接添加到临时类型中,那么您的原始代码将构建得很好。
现在
|
![]() |
2
6
它不会失败。
呼叫
|
![]() |
3
1
错误消息试图传达:
A非-
对于
现在,如果您只从临时对象中读取,C++的特点是延长其生存期。这就是为什么
如果将类型参数显式设置为
可以很好地编译。 [C++11]
对于
存在。
你可以期待
|
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |