Мы используем SWIG для создания оболочек Python для некоторого кода на C++. директивы SWIG начинаются с%, и выглядеть в заголовках:Как пропустить директивы SWIG в clang-формате
#ifdef SWIG
%apply int* INT_RET_VAL{int * is_donor};
#ENDIF
ErrLevel mmct_hbond_is_donor(MM_Index ct, int atom_idx, int* is_donor);
#ifdef SWIG
%clear int * is_donor;
#ENDIF
Когда лязг формат обрабатывает их, %apply
превращается в % apply
, который не является SWIG заявление больше! Есть лотов из них в нашей базе кода в настоящее время. Есть ли хороший способ убедить clang-format пропустить заявления% apply и% clear? Или, может быть, все в #ifdef SWIG
?
Спасибо за ваше предложение. Я не думаю, что это сработает для нас. Если вы примените это предложение к моему первоначальному вопросу, в заголовок будет добавлено еще 4 строки, что еще больше затушевывает (довольно простое) объявление функции. – dbn
Если это неприемлемо, вы можете не использовать этот подход '#ifdef SWIG' и извлекать директивы swig во внешний .i-файл. В противном случае у меня нет идей. – cubuspl42