file.open(strFilename.c_str(), ios::out || ios::trunc);
에 따른 에러코드
no matching function for call to `
std::basic_fstream >::open(const char*, bool)’
/usr/include/c++/3.2.2/fstream:557: candidates are: void
std::basic_fstream<_CharT, _Traits>::open(const char*, std::_Ios_Openmode =
(std::ios_base::in | std::ios_base::out)) [with _CharT = char, _Traits =
std::char_traits]
std::basic_fstream
/usr/include/c++/3.2.2/fstream:557: candidates are: void
std::basic_fstream<_CharT, _Traits>::open(const char*, std::_Ios_Openmode =
(std::ios_base::in | std::ios_base::out)) [with _CharT = char, _Traits =
std::char_traits
틀린게 없어 보이지만…(나는 없어 보였다.. T_T)
ios::out || ios::trunc 의 결과는 bool 값이 된다. || 가 or 연산자이기 때문이다.
VC++ 7.0 warnning level 3 에서는 문제없이 컴파일 된다. bool 로 나온값을 어떻게 처리하는지는 모르겠다. 자동으로 32bit 데이타 타입으로 변환되고 그값이 다시 그 플래그 값으로 변환이 되는게 아닐까 한다.
저 코드는
file.open(strFilename.c_str(), ios::out | ios::trunc);
으로 수정해서 비트연산을 하게 해줘야 된다.
후….이건 정말 삽질에 어울리는 포스팅인듯..(이른바 주옥같은 삽질들)
나와 같은 삽질을 하고 그에 대한 답을 준 사람들
http://www.spinics.net/lists/gcchelp/msg05558.html
마틴에게 감사를…
Thx Martin
ps.
왜 틀렸는지 알고 나서 보면.. 저 위의 에러코드에 답이 들어있다.
….젠장!