Я знаю, что библиотеки Boost предназначены для C ++, однако я недавно наткнулся на Boost.predef, который зависит только от процессора C, не имеет C ++ -конкретного кода и, следовательно, отлично работает в C -коде. boost.io перечисляет этот модуль как C ++ 98 , но я могу включить и использовать его с любым C99 Compiler [см. Ниже].
Покачивание немного в его источник также показывает, что была проделана некоторая работа для поддержки компиляции C (примеры: 1, 2, 3, 4), поэтому мне очень любопытно, сколько из этих «библиотек» будут работать с C, точно так же, как C. boost.predef делает. < /p>
По аналогию Boost.predef, я имею в виду те, которые, например, Только C-preprocessor или не требует какой-либо функции C ++ для компиляции или разрешения для использования части модуля из C без компиляции источников C ++. < /P>
Есть ли больше повышения Библиотеки, которые можно использовать из C? Есть ли способ обнаружить, какая из этих библиотек совместима с C?
, возможно, связана: какие библиотеки Boost только заголовки?
< Pre Class = "Lang-Bash PrettyPrint-Override"># proof that boost.predef compiles and works with C
# get the source tree and create minimal compatible program
$ git clone https://github.com/boostorg/predef.git
$ echo '#include "boost/predef.h"' > main.c
$ echo 'int main(void) {return 0;}' >> main.c
# compile with very strict C99
$ cc -x c -std=c99 -Wpedantic -Werror -I./predef/include main.c
$ cc --version
cc (GCC) 14.2.1 2024091
# show every available macro
$ cc -x c -std=c99 -Wpedantic -Werror -I./predef/include -dM -E main.c | grep BOOST
Подробнее здесь: https://stackoverflow.com/questions/794 ... ble-with-c