gpt4 book ai didi

C++ (gcc) 嵌套模板问题?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:27:48 25 4
gpt4 key购买 nike

我有以下简化,这有效:

// works:
template<typename NodeStructure>
struct ListNode {
NodeStructure *prev, *next;
};

template<typename NodeStructure, ListNode<NodeStructure> NodeStructure::*node>
struct ListBase {
NodeStructure *head, *tail;
};

struct N {
ListNode<N> node;
};

struct B {
ListBase<N, &N::node> base;
};

但这行不通

template<typename NodeStructure>
struct List {

struct Node {
NodeStructure *prev, *next;
};

template<Node NodeStructure::*node>
struct Base {
NodeStructure *head, *tail;
};

};

struct N {
List<N>::Node node;
};

struct B {
List<N>::Base<&N::node> base; // ERROR: Invalid template argument, ¿why?
};

在实际代码中,List 模板接收更多的模板参数并定义了一个额外的类 Iterator,问题是“为什么不起作用,我做错了什么?”


哦,不,是 IDE 问题!!

扫描嵌套模板参数时 Eclipse CDT/代码分析误报。

感谢您的回答。

最佳答案

eclipse CDT 在检测到代码分析错误时会破坏建筑物。解决方案:代码分析无效模板参数已被禁用并报告了一个错误

https://bugs.eclipse.org/bugs/show_bug.cgi?id=407497

关于C++ (gcc) 嵌套模板问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16427928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com