오늘 볼랜드 C++ 소스를 Visual C++ 에서 컴파일하면서 삽질한거 하나
아래와 같이 enum 형으로 선언되어 있는데..
enum ETableStyle { HasSave = 0x01, AllowModify = 0x02,
AllowAddRow = 0x04, AllowAddCol = 0x08,
AllowDelRow = 0x10, AllowDelCol = 0x20}
Style;
이 enum 형 변수가.. 볼랜드에선 이따우 식으로 어사인 처리가 된단다 -_-;
(int) Style |= (int)AllowDelRow;
고대로 가져다 Visual C++ 에서 컴파일 하면.. 당근 에러발생
error C2106: ‘|=’ : left operand must be l-value
될리가 없자나.. 아우.. -_-;
어쩔수 없이 빙빙돌려서 집어넣기~
int ttStyle = Style;
ttStyle |= (int)AllowDelRow;
Style = (DataTable::ETableStyle)ttStyle;
으어어어 이게 모냐구 -_-;
이거 말고 좋은 방법 없나 -_-;;;;
안녕하세요. 어쩌다 오늘 (8월 17일) 구루님 블로그를 발견하고, 위의 글을 보게 되었습니다.
5월달에 게시된 건 같은데, 에라 그냥 제 생각을 올려봅니다.
아래처럼 하는게 어떨지요? operand |= 를 분리해서 한줄에 casting만으로 요렇게…
Style = (DataTable::ETableStyle)(Style | AllowDelRow);
^^;;;
[+늑다리님] 확실히 간편해 지는군요. 근데 이미 소스관련 작업은 끝나버려서 ^^
그래도 감사드립니다~