向前声明模板别名
forward declare a template alias
我有一个别名模板,用using指令定义:
template<typename A>
using T=TC<decltype(A::b),decltype(A::c)>;
c++ 11是否提供了转发声明模板别名T
的机制?
我试着:
template<typename> struct T;
:
template<typename>
using T;
但都返回编译器错误("与先前声明冲突")。我使用的是gcc 4.8.
让它工作的语法是什么?
不,不可能。
你要做的是前向声明TC
,然后在它下面定义T
。
template<typename T, typename U>
struct TC;
template<typename A>
using T=TC<decltype(A::b),decltype(A::c)>;
相关文章:
- C++使用默认模板参数键入别名和转发声明
- 为什么别名声明不是有效的 init 语句(/simple-declaration)?
- 使用其他模板类型参数作为要在函数签名中使用的类型别名声明
- C++中的别名声明
- 应用于类型别名声明的 [[maybe_unused]] 属性的语法
- 是否可以将引用类型别名与指针运算符一起使用来声明对指针的引用?
- 替代班级内声明类型的别名
- 为什么我可以使用类型别名声明常量引用
- 如何使用别名声明模板化函数类型定义
- 将这些模板转换为别名声明
- 如何将所有别名、声明和初始化放在一起
- C++在不同的类中使用别名模板声明
- 我可以使用相同的名称为周围作用域中的类型声明成员类型别名吗
- 无法声明函数中的模板类型别名
- 如果模板别名声明可以解决新的类型家庭
- 使用别名声明时出错
- 模板化别名声明的部分专门化
- c++概念生命和类型别名声明
- 在不同的命名空间中调用别名声明的基类构造函数
- 标准中哪里规定成员别名声明可以像静态成员一样使用