Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;(gcc)嵌套模板问题?_C++_Templates - Fatal编程技术网

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

C++ C++;(gcc)嵌套模板问题?,c++,templates,C++,Templates,我有以下简化,这是可行的: // works: template<typename NodeStructure> struct ListNode { NodeStructure *prev, *next; }; template<typename NodeStructure, ListNode<NodeStructure> NodeStructure::*node> struct ListBase { NodeStructure *head,

我有以下简化,这是可行的:

// 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;
};
//工作原理:
模板
结构列表节点{
节点结构*prev,*next;
};
模板
结构列表库{
节点结构*头,*尾;
};
结构{
列表节点;
};
结构B{
ListBase;
};
但这不起作用

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?
};
模板
结构列表{
结构节点{
节点结构*prev,*next;
};
模板
结构基{
节点结构*头,*尾;
};
};
结构{
列表::节点;
};
结构B{
List::Base;//错误:模板参数无效,为什么?
};
在实际代码中,列表模板接收更多的模板参数并定义一个额外的类迭代器,问题是?为什么不工作,我做错了什么


哦,不,这是一个IDE问题

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


感谢您的回答。

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


List::Node
节点不是类模板,这是打字错误吗<代码>列表::节点
列表::节点
-该
看起来是多余的,请尝试删除它。您没有使用成员函数调用模板,但这正是它期望得到的结果。@Dave它期望得到一个成员指针,而它得到了一个。您得到了什么错误?如果像其他人建议的那样删除
,ideone将顺利编译。