일부 지오메트리 기반 코드로 작업하고 있습니다. 현재 진행중인 작업에는 견고한 표본을 포함하기위한 경계 상자의 사용이 포함됩니다. 이제 코드에서 두 개의 다른 유형, 즉 INNER_BOUNDING_BOX
과 OUTER_BOUNDING_BOX
을 고안했습니다. 코드는 두 상자 중 하나의 사용을 기대하지만 둘 다 사용하지는 않습니다. 나는 전처리기를 사용하여 그것을 달성하려고 노력하고있다. 두 매크로, 즉 USE_INNER_BOUNDING_BOX
과 USE_OUTER_BOUNDING_BOX
을 기반으로 추가 코드를 작성했습니다. 나는 언제든지 하나의 매크로는 다음과 같이 몇 가지 간단한 구조를 통해 정의되어 있는지 확인 할 수 있습니다 내가 특정 상자를 사용하기를 원한다면기본값을 에뮬레이트하기위한 조건부 매크로 정의
#if defined(USE_INNER_BOUNDING_BOX) && defined(USE_OUTER_BOUNDING_BOX)
#undef USE_INNER_BOUNDING_BOX
#undef USE_OUTER_BOUNDING_BOX
#define USE_INNER_BOUNDING_BOX
#endif
#ifndef USE_INNER_BOUNDING_BOX
#ifndef USE_OUTER_BOUNDING_BOX
#define USE_INNER_BOUNDING_BOX
#endif
#endif
지금, 난 그냥 해당 매크로를 정의 할 수 있습니다. 난이도는 USE_DEFAULT_BOUNDING_BOX
이라는 기본 설정 매크로를 사용하고 싶습니다.이 매크로를 사용하여 명시 적으로 정의되거나 모두 정의되지 않은 경우 USE_INNER_BOUNDING_BOX
또는 USE_OUTER_BOUNDING_BOX
중 하나에 대해 정의를 설정할 수 있습니다. 필자는 이식 가능한 코드를 선호하지만 컴파일러 관련 트릭도 통과 할 수 있습니다. Visual Studio 2012
을 사용하고 있습니다.
질문에 대한 답변은 없지만 'BOUNDING_BOX_TO_USE'스위치를 'INNER == 1' 'OUTER == 2'라는 단일 스위치로 정의하지 않으시겠습니까? 그렇게하면 본질적으로 두 가지가 될 수 없습니다. – Yunnosch
비슷한 줄에 뭔가 쓸 수 있습니다. 그 때 나에게 공격하지 않았다. :) 다르게 구현하려고합니다. 그러나 여전히 우발적 인 질문이며 재미 있었기 때문에 물었습니다. :) – user2338150
이 매크로 블록은 이미 원하는대로 수행합니다. 둘 다 정의되거나 정의되지 않은 매크로 중 하나를 정의하십시오. 그것은 더 짧을 수 있습니다. – VTT