首页 > 解决方案 > 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++c++11language-lawyer

解决方案


推荐阅读