error C2872
#include <iostream>
using namespace std;
...
bool is_empty(LinkedListType *list)
{
return list->head == NULL ? true : false;
}
void delet(LinkedListType *list, int pos)
{
if ((!is_empty(list)) && (pos >= 0) && (pos < list->length))
{
ListNode *p = get_node_at(list, pos - 1);
ListNode *removed = get_node_at(list, pos);
remove_node((&list->head), p, removed);
list->length--;
}
}
...
위와 같은 코드를 실행하면 다음과 같은 오류가 발생할 수 있다
error C2872: 'is_empty': 모호한 기호입니다.
이 오류는 namespace 기능에 의해 발생하는 오류이다
14번 줄에 있는 is_empty 가 'bool is_empty(LinkedListType *list)' 인지 'std::is_empty' 인지
구별을 하지 못하기에 발생한다
이를 해결하는 방법은 함수의 이름을 바꾸어주거나 is_empty를 확실하게 구별시켜주면 된다
구별시켜주는 방법은
::is_empty
를 이용하면 'bool is_empty(LinkedListType *list)', namespace가 없는 함수로 인식한다
std::is_empty
를 이용하면 std 상의 is_empty 로 인식한다
MSDN::https://msdn.microsoft.com/ko-kr/library/t57wswcs.aspx
320x100
'Programming Language > C/C++' 카테고리의 다른 글
| [C/C++] 포인터와 const (0) | 2017.05.10 |
|---|---|
| [C/C++] string 문자열 비교 ==? compare? strcmp? (1) | 2017.04.30 |
| [C/C++] error C4996: 'strcpy' 'strcat' 오류 해결 (0) | 2017.04.21 |
| [C/C++] 숫자를 포함한 문자열 입력 시 오류 해결 (0) | 2017.04.20 |
| [C/C++] 빈칸을 포함한 문자열 입력 시 오류 해결 (0) | 2017.04.20 |