"clear()"함수를 정의한 "PDCurses/curses.h"를 포함하고 있는데, 'std : : wstring :: clear() 'msvc-10.0 컴파일러가 오류를보고합니다. 포함 후에 #undef clear()를하면 수정됩니다. 코드는 다음과 같다 :"#define clear()"와 "std :: wstring :: clear()"사이의 혼동
inline void str_clear(std::wstring& wstr)
{
wstr.clear();
}
내가 사용하는 '표준 :'그런데 왜 컴파일러는 여전히 혼란? 5 월 다중 정의 된 '네임 스페이스'가 원인 일 수 있습니까?
전처리를 볼 수 있도록하는
clear()
를 대체 할사용, 그것은 맹목적으로 물건을 대체합니다. 'clear()'는 헤더에 넣는 엉성한 매크로입니다. – Thomas
'# define'이라면, 컴파일하기 전에 뭔가 다른 것으로'clear (...) '를 대체 할 것입니다. – juanchopanza
'clear()'이 말 그대로'(wstr.clear)()'와 같은 방식으로 코드를 다시 작성함으로써 피할 수 있습니다. – hvd