- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我已经搜索过 SO 和谷歌,我没有在两个地方声明相同的变量,也没有以我知道的奇怪方式包含一些东西。插入方法应该可以正常工作,它是一个预先编写的方法(我想这也可能是错误的..大声笑)。这是我得到的错误。
错误:
error C2872: 'range_error' : ambiguous symbol
........ while compiling class template member function 'Error_code List<List_entry>::insert(int,const List_entry &)'
对我来说,insert 方法看起来没问题,我没有发现与 0 进行比较的 position 变量或在构造函数中声明为 0 以返回 range_error 的 count 有任何问题。
插入方法:
template <class List_entry>
Error_code List<List_entry>::insert(int position, const List_entry &x){
Node<List_entry> *new_node, *following, *preceding;
if(position < 0 || position > count){
return range_error;
}
if(position == 0){
if(count == 0) following = nullptr;
else {
set_position(0);
following = current;
}
preceding = nullptr;
}
else {
set_position(position - 1);
preceding = current;
following = preceding->next;
}
new_node = new Node<List_entry>(x, preceding, following);
if(new_node == nullptr) return overflow;
if(preceding != nullptr) preceding->next = new_node;
if(following != nullptr) following->back = new_node;
current = new_node;
current_position = position;
count++;
return success;
}
问题可能在于我没有重载 = 运算符的实现吗?
此处所有代码:pastie.org/1258159
最佳答案
range_error
在您的代码(在全局命名空间中)和标准库(在 std
命名空间中)中定义。您使用 using namespace std;
将整个标准命名空间拖入全局命名空间会产生歧义。您应该至少执行以下操作之一:
using namespace std
;在你的函数中使用命名空间,或者只使用你需要的名称,或者在你使用它们时限定所有标准名称关于c++ - 错误 C2872 : 'range_error' : ambiguous symbol,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4053432/
我有 C++ 代码将包含 🜆( ALCHEMICAL SYMBOL FOR AQUA REGIA ) 的 string 转换为 u16string: #include #include #inc
我正在编写一些需要使用系统语言环境在字节字符串和宽字符串之间进行转换的代码。从文件中读取时,这非常容易做到。我可以使用 std::wifstream , 用 std::locale("") 灌输它,
来自 Programming: principals and practices Chapter 4 Drill 1: 编写一个由 while 循环组成的程序(每次围绕loop) 读入两个 int 并
我已经搜索过 SO 和谷歌,我没有在两个地方声明相同的变量,也没有以我知道的奇怪方式包含一些东西。插入方法应该可以正常工作,它是一个预先编写的方法(我想这也可能是错误的..大声笑)。这是我得到的错误。
谁能解释一下 range_error、out_of_range 以及 overflow_error 和 underflow_error 之间的区别是什么,我什么时候应该使用它们?它们看起来都一样。 根
我正在使用 std::wstring_convert 将 wstring 转换为多字节字符串,如下所示: // convert from wide char to multibyte char
我是一名优秀的程序员,十分优秀!