c++ - C++11 不支持模板化类型定义的技术原因
问题描述
在 C++03 中,您不能使用模板别名,但从 C++11 开始,using
语法允许使用。
例如,以下(使用typedef
)是无效的:
template<class T>
typedef vector<T> v;
而以下(使用using
)很好:
template<class T>
using v = vector<T>;
我的问题与委员会仅支持模板化别名的理由无关using
。
我的问题是,是否有任何技术原因无法支持?基本上,委员会是否允许这样做typedef
,会有任何实施问题吗?例如,它会与其他东西冲突或导致一些奇怪的解析问题吗?
对于我能够提出的任何情况,应该没问题,但我不是专家,这就是我在这里问的原因。
我做过的研究,没有回答这个问题:
- 为什么 C++ 中的类型别名在其语法中使用 'using' 而不是 'typedef'?讨论委员会的理由,但没有任何技术原因。
- C++ 模板 typedef讨论了不能使用 templated
typedef
,而不是它背后的任何技术推理。
解决方案
推荐阅读
- python - 如何通过 dialogflow+python 创建代理?
- c# - 如何在没有实体框架的情况下将 .net 核心中的连接字符串连接到 Azure SQL?
- java - 延迟抓取 + Spring Security
- react-router-dom - REACT Router V6 无法在另一个 Router 内渲染 Router
- javascript - 不使用支付请求 API 更改 Apple Pay 中的货币
- css - 在 React 中使用样式组件在图标旁边显示文本
- javascript - 如何修复 react.js 中的“只能在函数组件的主体内调用挂钩”错误?
- powershell - 混合 Where-Object/ForEach-Object 语法
- go - 无法在 go 中导入包
- node.js - npm 错误!尝试使用 npx nodemon 时的代码 ELIFECYCLE