종종 Boost 강력한 typedef 유틸리티를 사용하여 내 프로그램의 안전성을 향상시킵니다. 예를 들어 다음과 같은 코드를 작성하는 경우 :강력한 typedef를 Boost Parameter 라이브러리보다 가벼운 대안으로 사용 하시겠습니까?
BOOST_STRONG_TYPEDEF(int, X)
BOOST_STRONG_TYPEDEF(int, Y)
BOOST_STRONG_TYPEDEF(int, Width)
BOOST_STRONG_TYPEDEF(int, Height)
struct Rect {
Rect(X x, Y y, Width w, Height h);
};
// Usage:
Rect rect(X(10), Y(20), Width(800), Height(600));
강력한 typedef는 코드 가독성과 안전성을 향상시킵니다. (인수는 인수가 모든 int
인 경우에 경우 없었을 것입니다 잘못된 순서에 제공하는 경우 컴파일러에서 오류를보고합니다.)
내 질문은 :
- 가 그것을 확인인가 이를 위해 BOOST_STRONG_TYPEDEF를 사용 하시겠습니까? (문서는 very brief입니다.)
- 이 대신 부스트 매개 변수 라이브러리를 선호하는 중요한 이유가 있습니까?
당신이 'OK'는 무엇을 의미하는 따라, 그것은 컴파일 및 실행은 그 잘못 그래서 무엇을 가정합니다. 나는이 논리 뒤에 당신의 논리를 보지만, 나에게 '틀린'것처럼 보입니다. 거기에 varaibles와 paramaters의 이름을 붙일 수있는 이유가 있습니다. 따라서,'width' 매개 변수를 설정하기 위해'width'에'int'를 명시 적으로 캐스팅하는 것은 잘못된 것처럼 보입니다. 'int'만으로'set (width w);'등을 사용하는 것이 편리 할 지 모르지만 그렇게 할 수는 없습니다. – thecoshman
boost 매개 변수는 명명 된 (그리고 선택 사항 인) 인수를위한 것이고 BOOST_STRONG_TYPEDEF *는 원래 유형을 대체 할 수 있지만 여전히 고유 한 유형 *을 사용할 수있는 새로운 유형 "이름"을 만듭니다. – Gigi