BC++ vs VC++

오늘 볼랜드 C++ 소스를 Visual C++ 에서 컴파일하면서 삽질한거 하나

아래와 같이 enum 형으로 선언되어 있는데..


<br /> enum ETableStyle { HasSave = 0x01, AllowModify = 0x02,<br /> AllowAddRow = 0x04, AllowAddCol = 0x08,<br /> AllowDelRow = 0x10, AllowDelCol = 0x20}<br /> Style;<br />

이 enum 형 변수가.. 볼랜드에선 이따우 식으로 어사인 처리가 된단다 -_-;


<br /> (int) Style |= (int)AllowDelRow;<br />

고대로 가져다 Visual C++ 에서 컴파일 하면.. 당근 에러발생


<br /> error C2106: &#8216;|=&#8217; : left operand must be l-value<br />

될리가 없자나.. 아우.. -_-;

어쩔수 없이 빙빙돌려서 집어넣기~

<br /> int ttStyle = Style;<br /> ttStyle |= (int)AllowDelRow;<br /> Style = (DataTable::ETableStyle)ttStyle;<br />

으어어어 이게 모냐구 -_-;

이거 말고 좋은 방법 없나 -_-;;;;

BC++ vs VC++”에 대한 2개의 생각

  1. 늑다리

    안녕하세요. 어쩌다 오늘 (8월 17일) 구루님 블로그를 발견하고, 위의 글을 보게 되었습니다.
    5월달에 게시된 건 같은데, 에라 그냥 제 생각을 올려봅니다.
    아래처럼 하는게 어떨지요? operand |= 를 분리해서 한줄에 casting만으로 요렇게…
    Style = (DataTable::ETableStyle)(Style | AllowDelRow);
    ^^;;;

    응답
  2. 구루

    [+늑다리님] 확실히 간편해 지는군요. 근데 이미 소스관련 작업은 끝나버려서 ^^
    그래도 감사드립니다~

    응답

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다