c++ - C ++“使用”关键字用于唯一类型而不是别名
问题描述
该using
关键字可以用作“typedef”的现代 C++ 等效项。我发现能够为我正在使用的原始类型声明一个在语义上更有意义的别名是非常方便的,例如ErrorCode
,而不是unsigned int
. 最近我一直在尝试使用编码std::variant
并注意到,由于我只定义了一个类型别名而不是一个新类型,我将无法拥有一个std::variant
具有两个不同别名的aint
并仍然使用std::get
.
C++ 中有没有办法声明类似 Haskelldata
关键字的东西,编译器会在其中识别例如new_type ErrorCode = int
实际类型而不仅仅是别名?我的目标是稍后从一个变体中访问该类型的值,例如std::get<ErrorCode>(myVariant)
with variant 也持有 eg new_type UserId = int
。
解决方案
推荐阅读
- python - 将递归 POST 数据转换为 JSON 对象
- c++ - 运行时带有参数的 Qt 控制台应用程序
- apache-camel - Apache Camel 解压、处理和聚合未完成
- asp.net - Asp.Net Web Api 允许 Url 编码的正向/反向斜杠
- django - 如何创建一个在同一页面上显示所有单选按钮的表单?
- r - 未提供错误行号时如何调试?
- mysql - MySQL GROUP BY 跨三个表的空间搜索速度慢
- python-3.x - AttributeError:“元组”对象没有“翻译”属性
- javascript - 正则表达式检查总是返回 null\false\-1
- r - 1 天的滚动总和,如果值等于 0,则重置