|
[C++ Error] _algobase.h(429): E2093 'operator==' not implemented in type 'import_file_info' for arguments of the same type
자꾸 이런 에러가 뜨네요...
에러난 곳을 클릭하면 아래의 소스를 보여줍니다.
template <class _InputIter1, class _InputIter2>
_STLP_INLINE_LOOP
bool equal(_InputIter1 __first1, _InputIter1 __last1,
_InputIter2 __first2) {
_STLP_FIX_LITERAL_BUG(__first1) _STLP_FIX_LITERAL_BUG(__last1) _STLP_FIX_LITERAL_BUG(__first2)
_STLP_DEBUG_CHECK(__check_range(__first1, __last1))
for ( ; __first1 != __last1; ++__first1, ++__first2)
if (!(*__first1 == *__first2)) <=== 빨간색으로 요길 가르킵니다.
return false;
return true;
}
다음과 같이 소스를 짰는데요..
struct port_info {
AnsiString PortName; // char *
AnsiString PortWidth; // int
AnsiString PortDir; // int
AnsiString PortType; // int
};
struct import_file_info {
AnsiString EdifFile; // char *
AnsiString InstanceName; // char *
AnsiString EmulationMode; // int
AnsiString Type; // int
AnsiString CmdFifoSize; // int
AnsiString ReadFifoSize; // int
AnsiString WriteFifoSize; // int
AnsiString SlaveReadFifoSize; // int
AnsiString SlaveWriteFifoSize; // int
AnsiString UseClockType; // int
AnsiString ClockPortName; // char *
AnsiString TotalPortCount; // int // 포트의 갯수
vector<port_info> PortInfo; // 포트 정보
};
vector<import_file_info> ImportFilesInfo, ImportFilesInfoBackup;
..
..
..
if(ImportFilesInfo==ImportFilesInfoBackup) {
ShowMessage("변경이 안되었음");
} else {
ShowMessage("변경이 되었음");
}
참.. 이상하네요.. 답변좀 부탁드립니다.
김백일 님이 쓰신 글 :
: 두 벡터가 완전히 동일하면 true를
: 리턴하는 operator==()가 있습니다.
:
: 그런데, 선언 방법이 틀렸네요.
:
: 민인학 님이 쓰신 글 :
: : 예로
: :
: : struct {
: : int a;
: : int b;
: : } test1;
: :
: : struct {
: : int a;
: : int b;
: : } test2;
:
: C++에서는 이런 식의 구조체 선언은 좋지 않습니다.
:
: : vector<test1> a;
: : vector<test2> b;
:
: struct test_type {
: int a;
: int b;
: test_type(int a1, int b1): a(a1), b(b1) {} // 편의를 위해 만든 생성자
: }; // 이렇게 해야 합니다.
:
: vector<test_type> v_a, v_b;
:
: v_a.push_back(test_type(1, 2)); // test_type의 임시 객체가 생성된 후,
: v_a.push_back(test_type(3, 4)); // 벡터에 추가됩니다.
:
: v_b.push_back(test_type(1, 2));
: v_b.push_back(test_type(3, 4));
:
:
: if (v_a == v_b) // 가능한 공백을 두어서 보기 좋게 해주세요.
: ShowMessage("두 벡터가 동일합니다.");
: else
: ShowMessage("두 벡터가 동일하지 않습니다.");
:
:
|