Pracuję nad projektem, który do tej pory został zbudowany z gcc i msvc. Niedawno zaczęliśmy też budować z klangiem.Wykryj gcc w przeciwieństwie do msvc/clang z makro
Istnieją pewne elementy w kodzie, gdzie rzeczy dla konkretnych platform są wykonywane:
#ifndef _WIN32
// ignore this in msvc
#endif
Ponieważ gcc była wcześniej jedynym nie-windows budowę, było to równoznaczne z powiedzeniem „to zrobić tylko dla gcc ". Ale teraz oznacza to "rób to tylko dla gcc i clang".
Jednak nadal istnieją sytuacje, w których chciałbym obsłużyć coś specjalnie dla gcc, a nie dla klang. Czy istnieje prosty i solidny sposób wykryć gcc, tj
#ifdef ???
// do this *only* for gcc
#endif
Dlaczego budujesz z mnóstwem kompilatorów? –
możliwy duplikat [Jak do #ifdef przez CompilerType? GCC lub VC++] (http://stackoverflow.com/questions/15127522/how-to-ifdef-by-compilertype-gcc-or-vc) – sashoalm
nie, inne pytanie nawet nie wspomina o klang ... – ValarDohaeris