gpt4 book ai didi

c++ - 无法专攻 fnc

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

有那些:

template<class T>
struct Is_Node
{
enum {value = false};
};

template<class Key_T, class Value_T>
class Node;//frwd decl.

template<class K,class V>
struct Is_Node<Node<K,V>>
{
enum {value = true};
};

enum Tags {tree_tag,node_tag,root_tag,parent_tag,left_tag,right_tag,key_tag,value_tag,color_tag};

template<Tags>
struct Tag_2_Type
{/*eb*/};

template<class Node_T>
typename Node_T::node_ptr& get_root(Node_T& node)
{
return get_root_hlp(node,Tag_2_Type<Is_Node<Node_T>::value>());
}

template<class Node_T>
typename Node_T::node_ptr& get_root_hlp(Node_T& node,Tag_2_Type<node_tag>)
{
return node->root_;
}

template<class Node_T>
typename Node_T::node_ptr& get_root_hlp(Node_T& node,Tag_2_Type<tree_tag>)
{
return node->root_;
}

我遇到错误:
错误 C2893:无法特化函数模板“Node_T &get_root(Node_T &)”

知道为什么吗?

最佳答案

您没有给出足够的代码来确定,但我怀疑问题是您在尝试调用 get_root 时没有定义 Node,因此编译器无法识别 Node_T::node_ptr。另一个问题似乎是 get_root 在声明之前调用 get_root_hlp。

关于c++ - 无法专攻 fnc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6924784/

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