Das Einzige, was von Anfang an funktioniert, ist, die gcc-Version zu testen und zu hoffen, dass dies auf allen Architekturen konsequent durchgeführt wird.
Das ist nicht garantiert, aber ich hatte kürzlich ein ähnliches Problem nicht mit eingebauten Funktionen, sondern mit __thread
für lokalen Thread-Speicher. Dies ist auf einigen Architekturen (linux) implementiert, aber nicht auf anderen (OS X, bsd?) Und es gab keine Möglichkeit, dies mit einem Makro herauszufinden.
Wenn Sie gnu make haben, können Sie etwas ähnliches tun, um die Existenz einer bestimmten Funktion in Ihrem Makefile zu erkennen:
%Vor%Dies vermeidet die Verwendung komplexerer Konfigurationsdienstprogramme.
Tags und Links c gcc intrinsics