【发布时间】:2017-05-17 02:10:17
【问题描述】:
template<class TNodeValue>
struct Node
{
Node* next;
TNodeValue value; //need to store here TPair<typename Tkey, typename Tvalue>. Got C2512 error: no appropriate default consturctor available.
Node();
Node(TNodeValue _value);
};
template<typename TNodeValue>
Node<TNodeValue>::Node()
{
next = NULL;
value = NULL;
}
template<typename TNodeValue>
Node<TNodeValue>::Node(TNodeValue _value)
{
next = NULL;
value = _value;
}
T配对码:
template <typename Tkey, typename Tvalue>
struct TPair
{
Tkey key;
Tvalue value;
TPair(Tkey _key, Tvalue _value)
{
key = _key;
value = _value;
}
};
调用错误的代码:
TPair<int, int> a(1, 2);
Node<TPair<int, int> > node(a);
问题是为什么它不会被存储?为什么 TNodeValue 不能存储像 TPair 这样的东西?得到 C2512 错误。 重要提示:不要使用标准库。
【问题讨论】:
-
这个“问题”毫无意义。你的问题是什么?
-
我已经更新了帖子。现在更清楚了吗?
-
不,您还没有提出问题,并且没有足够的上下文来说明您在说什么。
-
问题是为什么 TPair
不会被存储?为什么TNodeValue不能存储TPair之类的东西? -
@АлександрТрифонов 试试ru.stackoverflow.com
标签: c++ templates containers