c++ - 嵌套类模板类型别名
问题描述
这可能是一个简单的问题,但我似乎无法弄清楚为嵌套类模板定义类型别名的语法。
基本上,我有:
template<class T>
struct Outer {
template<class U = T>
struct Inner {};
}
我希望能够从类定义外部访问 Inner 类作为类型。我试过了:
template<class T>
using Inner = typename Outer<T>::Inner;
或者
template<class T, class U = T>
using Inner = typename Outer<T>::Inner<U>;
但这没有用。
这实际上应该怎么做?
解决方案
你需要额外的template
:
template<class T, class U = T>
using Inner = typename Outer<T>::template Inner<U>;
推荐阅读
- java - 我们如何更新 apache-poi 中的数据透视表范围?
- r - 删除尾随“/”
- azure - 当源是 Blob 存储而接收器是 SQL 数据库时,有什么方法可以过滤掉复制活动中的一些数据?
- javascript - 如何在当前 json 对象键中使用 json 对象键的值?
- android - 显示用户位置附近的位置
- c# - c# - 执行处理程序的子请求时出错
- python - 如何将小波变换的 LL、LH、HL 保存为 3 通道图像?
- ruby - 如何从Ruby中的给定数组中删除重复的对值?
- haskell - 使用haskell将数据从一个sqlite数据库批量传输到另一个数据库的有效方法
- hadoop - 确保在 Kafka Connect 中只交付一次