에서 GCC 대 LLVM을 결정 나는 다음에 매크로 비슷한을 작성하려고 해요 :하지만 애플 LLVM 3.0 컴파일러,컴파일시
#ifndef DEPRECATED_ATTRIBUTE_MESSAGE
#define DEPRECATED_ATTRIBUTE_MESSAGE(message) __attribute__((deprecated (message)))
#endif
을 그리고이 작동합니다. 컴파일 시간에 컴파일 타임에 깨지기 때문에 다른 것보다 더 유용하지 않습니다.
#ifndef DEPRECATED_ATTRIBUTE_MESSAGE
#define DEPRECATED_ATTRIBUTE_MESSAGE(message) __attribute__((deprecated))
#endif
내 질문 :
나는이 솔루션은 컴파일시에 컴파일러의 버전을 확인하는 몇 가지 매크로를 적용하는 것입니다 생각합니다. Apple LLVM 3.0 컴파일러와 LLVM GCC 4.2 또는 GCC 4.2 (또는 다른 것)를 식별하는 방법이 있습니까?
적으로는, 내가 이런 식으로 뭔가를 해결하고 싶습니다,하지만 난 그것을 알아낼 수있는 권리 매크로를 찾을 수 없습니다 :
이#ifdef [Apple LLVM 3.0]
#ifndef DEPRECATED_ATTRIBUTE_MESSAGE
#define DEPRECATED_ATTRIBUTE_MESSAGE(message) __attribute__((deprecated (message)))
#endif
#else
#ifndef DEPRECATED_ATTRIBUTE_MESSAGE
#define DEPRECATED_ATTRIBUTE_MESSAGE(message) __attribute__((deprecated))
#endif
#endif
완전히 작동했습니다. 감사. – Hyperbole