다음과 같은 몇 가지 코드가 나타났습니다.왜 당신은 과제의 lhs를 캐스팅하겠습니까?
enum BAR { /* enum values omitted */ }
class Foo{
public:
void set(const BAR& bar);
private:
uint32_t bits;
};
void Foo::set(const BAR& bar)
{
(uint32_t&)bits = bits | bar;
}
Foo :: set의 할당에서 C 스타일 캐스트의 요점을 이해하지 못합니다. 왜 당신은 과제의 lhs를 캐스팅하겠습니까? 미쳤나요? 아니면 목적이 있습니까?
아마도 정밀도 손실에 대한 컴파일러 경고를 피할 수 있습니까? 나는 그렇게 확신하지 않는다. –