|
set ( TOpenOptions 같은 ) 이 궁금해져서
소스를 들여다보게 됐습니다.
sysset.h 파일에 있길래 템플릿으로 돼 있더군요.
머 대충 훑어보다 보니 이상한 부분이 있습니다.
== operator를 정의한 곳을 보니
비교하기 전에 xor ( ^ ) 를 거치더군요.
그 부분만 가져와 보면,
//////////////////////////////////////////////////////////////
if (Data[i] != rhs.Data[i])
// Not so fast, if first or last byte, make sure that
// the compare does not include unused bits (mask them)
if (i == 0)
{
if (((0xFF >> (8-(minEl%8))) ^ Data[i]) !=
((0xFF >> (8-(minEl%8))) ^ rhs.Data[i]))
return false;
}
else if (sizeof (Data) > 1 && i == sizeof (Data) - 1)
{
if (((0xFF << (1+(maxEl%8))) ^ Data[i]) !=
((0xFF << (1+(maxEl%8))) ^ rhs.Data[i]))
return false;
}
else
return false;
//////////////////////////////////////////////////////////////
머 앞뒤 관계를 따져봐야겠지만 암튼간에,
if 문 안에서 비교전에 xor 연산하는게 맞는건가요?
제가보기엔 and 연산을 해야할 듯 싶은데...
한 번 살펴봐주세요.
|