c++ - 有条件地提供 using 声明
问题描述
假设我有一个foo
带有模板参数的类T
,我想为对应的引用和常量引用类型提供 using 声明T
:
template<typename T>
struct foo
{
using reference = T&;
using const_reference = T const&;
};
只有在没有专门化整个班级的情况下,有没有办法使用声明来“启用T
”void
这些foo
?
解决方案
您可以从具有专门化的基类继承void
:
template<typename T>
struct typedefs {
using reference = T&;
using const_reference = T const&;
};
template<>
struct typedefs<void> {};
template<typename T>
struct foo : typedefs<T>
{};
推荐阅读
- .net-core - .NET Core 2.1 + Identity as UI + windows service - 如何设置端口?
- java - 为什么 PDFBox 返回大小为 0 x 0 的图像尺寸
- c# - 如何在 C# winforms 中创建带有实线边框(3d)的按钮?
- python - HTTP 错误 404:启动 pdfbox 时未找到
- r - 在 R 中按分钟级的时间戳循环到子集数据帧
- algorithm - G和DFT的节点之间的深度优先遍历关系
- selenium - [Selenium]如何在网页元素上调用被覆盖的方法?
- sql - SQL 语法错误
- python - 使用 pyside 的 qtablewidget 中的单选按钮
- node.js - 如何更改节点中的默认调试器端口号?