c++ - 模板构造函数和复制构造函数
问题描述
为什么在下面的代码中调用模板构造函数而不是复制构造函数,当我在复制构造函数中删除'const'时,它将被调用。
#include <iostream>
struct foo{
int a_;
template <typename T>
foo(T&& v) : a_{static_cast<int>(v)}
{
}
foo(const foo& rhs) : a_{rhs.a_}
{
}
operator std::uint8_t(){return a_;}
};
int main()
{
foo bar1{256}, bar2{bar1};
if(bar1.a_ == bar2.a_)
std::cout << "hello!" << std::endl;
return 0;
}
解决方案
推荐阅读
- google-chrome-devtools - 中断邮件?
- spring-boot - mongo 中是否有像 hibernate.showSql 这样的功能来跟踪 mongodb 中的查询执行
- node.js - Facebook 营销 API 不适用于 App 令牌?
- visual-studio-code - 带有 VSCode 的 Eslint 插件找不到插件
- mariadb - Mysql 表排序规则改变
- reactjs - 按下按钮时如何使数字对应的图像显示而不是数字?
- mysql - 如何在一条记录中获取不同记录的两个字段Mysql
- c# - 反序列化 JSON 字符串列表以找到正确的模型
- queue - FlowFiles 卡在 NiFi 集群的队列中
- javascript - 为什么使用fabricjs 导出时图像质量非常低?