dependent-name相关内容

我必须在哪里以及为什么要放置“模板"?和“类型名称"关键词?

在模板中,我必须在何处以及为什么必须将 typename 和 template 放在依赖名称上? 究竟什么是从属名称? 我有以下代码: 模板//Tail 也将是一个 UnionNode.结构联合节点:公共尾巴{//...模板结构联合{//Q: 在哪里添加类型名/模板?typedef Tail::inUnion假;};模板 我遇到的问题在于 typedef Tail::in ..
发布时间:2022-01-30 15:46:06 C/C++开发

C++ 模板的两阶段名称查找 - 为什么?

为什么 C++ 标准为模板定义了两阶段查找?非依赖声明和定义的查找不能也推迟到实例化阶段吗? 解决方案 他们可以.这是最早期的模板实现方式工作,并且仍然是 Microsoft 编译器的工作方式.有人感觉到(在委员会中)这太容易出错了;这太容易了不小心劫持了一个名字,在一个翻译中实例化unit 选择一个本地名称,而不是所需的全局符号.(一个典型的翻译单元将由一系列 #include 组成,声 ..
发布时间:2021-12-13 18:56:50 C/C++开发

static_assert 依赖于非类型模板参数(gcc 和 clang 上的不同行为)

template 结构搭便车{static_assert(sizeof(answer) != sizeof(answer), "无效答案");};模板 struct Hitchhiker{}; 在尝试使用 static_assert 禁用通用模板实例化时,我发现 clang 中的上述代码即使没有实例化模板也会生成断言错误,而 gcc 仅在使用 42 以外的参数实例化 Hitchhik ..
发布时间:2021-12-13 18:28:32 C/C++开发

我必须将“模板"放在哪里以及为什么要放?和“类型名称"关键词?

在模板中,我必须将 typename 和 template 放在从属名称的何处以及为什么? 究竟什么是从属名称? 我有以下代码: template //Tail 也将是一个 UnionNode.struct UnionNode : 公共尾{//...模板结构体联合{//Q: 这里在哪里添加类型名/模板?typedef Tail::inUnion假的;};模板{};};模板 //对于最后一 ..
发布时间:2021-12-01 14:36:41 C/C++开发

模板基类typedef成员不可见

我知道默认情况下“依赖名称"对于编译器是不可见的.但是我被告知其他SO问题的答案( 解决方案 您可能想做: 使用MemberType =类型名TBase :: MemberType;//新型别名语法 或 typedef typename TBase :: MemberType MemberType;//旧类型别名语法 使用Base :: member; 的语法只能 ..
发布时间:2021-04-19 18:42:46 C/C++开发

可变模板

您可以看到此函数声明有什么问题吗? 模板 std :: tuple foo(const Containers& ... args); 当我尝试调用它,像这样: foo(std :: list(),std :: ve ..
发布时间:2016-10-27 23:40:16 C/C++开发

从依赖基类访问类型

有人知道为什么使用声明似乎不能从依赖基类导入类型名称吗?他们为成员变量和函数工作,但至少在GCC 4.3中,它们似乎被类型忽略。 template struct Base { typedef T value_type; }; template struct Derived:Base { //版本1:符合编译器的错误 val ..
发布时间:2016-10-26 22:03:07 C/C++开发