История изменений
Исправление fsb4000, (текущая версия) :
Я говорю про выжирание памяти линтером. Простота подключения библиотеки это очень так себе аргумент: это нужно делать один раз. А компилять каждый раз, когда что-то поменял.
и какая разница, что компелять каждый раз?
Header-only вообще не отличается от обычной библиотеки, в этом плане.
Нормальная header-only библиотека выглядит как-то так
#pragma once;
void test();
#ifdef NEED_IMPLEMENTAION_MY_SUPER_LIB
#include <stdio.h>
void test()
{
puts("Hello");
}
#endif
Линтер видит ровно тоже что он видел бы и для обычной либы(лишь declaration функций/классов)
А ты просто добавляешь к своему проекту, один cpp файл, и в нём.
#define NEED_IMPLEMENTAION_MY_SUPER_LIB
#include "my_super_lib.hpp"
во всех остальных cpp файлах, просто делаешь include, без define.
Подключение такой библиотеки проще, для линтеров/анализаторов/времени компиляции компилятором разницы никакой, по сравнению с не header-only библиотекой.
Исходная версия fsb4000, :
Я говорю про выжирание памяти линтером. Простота подключения библиотеки это очень так себе аргумент: это нужно делать один раз. А компилять каждый раз, когда что-то поменял.
и какая разница, что компелять каждый раз?
Header-only вообще не отличается от обычной библиотеки, в этом плане.
Нормальная header-only библиотека выглядит как-то так
#pragma once;
void test();
#ifdef NEED_IMPLEMENTAION_MY_SUPER_LIB
#include <stdio.h>
void test()
{
puts("Hello");
}
#endif
Линтер видит ровно тоже что он видел бы и для обычной либы(лишь declaration функций/классов)
А ты просто добавляешь к своему проекту, один cpp файл, и в нём.
#define NEED_IMPLEMENTAION_MY_SUPER_LIB
#include "my_super_lib.hpp"
Подключение такой библиотеки проще, для линтеров/анализаторов/времени компиляции компилятором разницы никакой, по сравнению с не header-only библиотекой.