c++ - C++ 专业化需要开放命名空间
问题描述
C++ 中的模板特化需要打开库命名空间。据我所知,这被认为是糟糕的编程技术。例如,广泛使用的YAML-CPP
库使用这种技术进行类型转换。请参阅YAML-CPP 转换<> 模板。
他们的宣言:
namespace YAML {
template <typename T>
struct convert;
}
可能的定义:
namespace YAML {
struct convert<MyOwnType> {
MyOwnType convert() {
return MyOwnType{};
}
}
}
是否有更好的 C++ 构造来创建类型转换功能而无需打开库的名称空间等?
解决方案
推荐阅读
- oracle - 将日期参数传递给 sqoop 导入 Hive 表
- html - 两端的 Bootstrap 导航和 Flexbox 项目的对齐问题
- sql - Oracle SQL Pivot 从同一个表中查询附加列
- python-3.x - NLP 应用程序的多处理错误
- svg - SVG 无法在 iOS Safari 和 Chrome 上正确呈现
- python-3.x - 寻找 Python 示例以搜索 Cognito 身份并更新属性
- javascript - 重建部分解构对象es6
- python - 获取用户的 Windows NT ID 并在 Linux 托管的 Flask 站点上用作变量
- excel - 删除空白或“空白”但包含公式的行后,将工作表作为 CSV 文件导出到特定位置的 VBA 脚本
- php - PHP FOR迭代不迭代