gpt4 book ai didi

c++ - 'xyz' not declared error at line where 'xyz' is being declared

转载 作者:行者123 更新时间:2023-11-30 02:50:25 29 4
gpt4 key购买 nike

我正在编写一个包含键值对集合的重要类,在编译期间我收到一个我无法弄清楚的非常奇怪的错误。在一个与这里的函数非常相似的函数中,但由于所需代码的复杂性而没有上下文,我收到错误:

TValue& operator[](const TKey& key) {
TDict::Node* node = mData.Begin(); // ERROR: 'node' was not declared in this scope
// -_- ... really?
do {
if(node->Data.Key == key) {
return node->Data.Value;
}
} while(node != mData.End());

this->Add(key, TValue());
return this->End()->Data.Value;
}
  • TDict 是一个扩展为 List<KeyValuePair<TKey, TValue> > 的 typedef
  • TDict::Node 在编译过程中是可见的。
  • 显然,没有其他变量称为节点。
  • 这是一个成员函数。

我不是要纠正此问题所需的代码,而是要提供可能发生此类错误的潜在情况的概要。

最佳答案

Its expands into List, where TKVPair is a typedef that expands into KeyValuePair.

它是从属名,所以,你应该使用typename

typename TDict::Node* node = mData.Begin();

阅读Where and why do I have to put the "template" and "typename" keywords?获取更多信息。

关于c++ - 'xyz' not declared error at line where 'xyz' is being declared,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20464974/

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