У меня есть заголовочный файл, содержащий несколько функций stati c, которые обертывают вещи.
namespace jhelper {
static void __attribute__((noinline)) writerKey(rapidjson_writer * writer, const char * key)
{ writer->Key(key); }
}
Почему? Потому что writer->Key()
вызывает генерацию загрузки asm. writerKey
используется в шаблонных функциях, и если writer->Key()
(и аналогичные функции) не обернуты, размер моего исполняемого файла увеличивается на несколько мегабайт.
g cc хорошо справляется с этим, но Clang любит Спам следующее предупреждение:
jsonVisitor.hpp:368:41: warning: 'static' function 'writerKey' declared in header file should be declared 'static inline' [-Wunneeded-internal-declaration]
Я очень явно не хочу этого встроенного. Меня не беспокоит дублирование копий функций stati c, существующих в отдельных блоках компиляции, поскольку я использую объединенную сборку для выпусков. Как мне подавить это предупреждение? Ура!