{
union 이 무엇인지 안다면, 어떨때 에러가 나는지 알 수 있을 것이다. union 은 사실 같은 데이터형의 확장을 하나의 형에 몰아 넣어 호환성을 극대화 할 때 사용하면 매우 좋다.

.. 물론 이렇게 말만 하니 무슨 말인지 모를 것이다. 다음 예제를 보자.

이렇게 정의 하면 bind 나 기타 다른 sockaddr 이 필요한 곳에 &addr_.base; 로만 넘겨 줘도 된다. 또한 경우가 바뀌여서 v6 를 쓴다 해도 기존 코드를 건들 필요가 없어 지게 된다. : )

이 코드를 처음 본것은 boost::asio 에서 였다. 그 순간 탁하고 무릎을 치고 "세계는 넓구나" 란 생각이 들었다.

}

저작자 표시
신고

'책 정리 > C++ Coding Standards : C++ 코딩의 정석' 카테고리의 다른 글

항목 69 : 합리적인 오류 처리 방식을 수립하고, 엄격히 그 방식을 따르라. ( Establish a rational error handling policy, and follow it strictly. )  (0) 2009.04.17
항목 68 : 내부적인 가정과 규칙을 확실하게 명시하라. ( Assert liberally to document internal assumptions and invariants. )  (0) 2009.04.17
항목 100 : 배열을 다형적으로 다루어서는 안된다. ( Don’t treat arrays polymorphically. )  (0) 2009.04.17
항목 99 : 올바르지 않은 개체와 안전하지 않은 함수는 사용하지 말라. ( Don’t use invalid objects. Don’t use unsafe functions. )  (0) 2009.04.17
항목 98 : 가변 인자의 사용을 피하라. ( Don’t use varargs (ellipsis). )  (0) 2009.04.17
항목 97 : union 사용을 주의하라. ( Don’t use unions to reinterpret representation. )  (0) 2009.04.17
항목 96 : POD가 아닌 데이터를 memcpy 또는 memcmp하지 말라. ( Don’t memcpy or memcmp non-PODs. )  (0) 2009.04.17
항목 95 : C 스타일의 캐스팅은 사용하지 말라. ( Don’t use C-style casts. )  (0) 2009.04.16
항목 94 : const 는 캐스팅 하지 말자. ( Avoid casting away const. )  (0) 2009.04.16
항목 93 : 포인터에 대한 static_cast 사용은 피하라. ( Avoid using static_cast on pointers. )  (0) 2009.04.16
항목 92 : reinterpret_cast 사용을 자제하라. ( Avoid using reinterpret_cast. )  (0) 2009.04.16
posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요