이 코드에는 문제가 있지만 그 원인을 찾을 수 없습니다.C++ 비교 표현 버그
bool Parser::validateName(std::string name) {
int pos = name.find(INVALID_CHARS); //pos is -1,
bool result = ((name.find(INVALID_CHARS)) < 0); //result is false
//That was weird, does that imply that -1 >= 0?, let's see
result = (pos < 0) //result is true
result = ((name.find(INVALID_CHARS)) == -1) //result is true
result = (-1 < 0) //result is true
...
}
왜 두 번째 줄에서 결과가 거짓입니까? 내가 보지 못하는 것이 있습니까?
나는 그것을 의심합니다. 이상적인 곳에 실행 가능한 코드를 게시 할 수 있습니까? –
추가적으로'INVALID_CHARS'에 복수형을 사용하는 것은 이것이 잘못된 문자들로 가득 찬 문자열인지 그리고'find_first_of'와 같은 것을 원하지 않는지 궁금하게 만듭니다. – PlasmaHH
find의 리턴은 size_t 타입입니다. – Chubsdad