c++ - boost::make_optional 类型说明
问题描述
解决方案
的模板参数boost::make_optional
没有在可选中准确定义类型。
此模板参数负责完美转发,这里是简单的最小示例重现问题:
#include <iostream>
template<typename T>
void bar(T&& x)
{
std::cout << __PRETTY_FUNCTION__ << " "
<< std::forward<T>(x) << '\n';
}
int foo(int x)
{
return x + 1;
}
int main()
{
int pizza = 5;
bar(pizza);
bar<int>(foo(pizza));
// bar<int>(pizza); // same error
return 0;
}
现场演示。
因此,当扣除完成时,Tint&
适用于 l 值和int
r 值。
当你传递变量时,你传递左值。
当您指定类型时,您将强制参数与int &&
不匹配int&
。
推荐阅读
- swift - 如何修复无法转换“字符串”类型的值?到预期的参数类型'URL'
- node.js - 使用 Gradle 管理 NodeJS + TS/Flutter 项目
- javascript - Draft-Js 没有使用图像 URL 显示我的图像
- python - Python追加多个元素
- jquery - 如何在 Asp.NET MVC 中使用复选框创建多选下拉菜单
- docker - Docker 日志记录 Efk 7.10.1 撰写 ECONNREFUSED
- php - 目标类 [UserController] 不存在 Laravel 8
- python - 具有线性约束的非凸优化
- tailwind-css - Tailwind - 为什么与 Bootstrap 不同,移动设备的无前缀类?
- swift - SwiftUI 协议作为类型:值不能符合“可识别”;只有结构/枚举/类类型可以符合协议