У меня есть множество функторов, таких как следующие:
const auto add = [](const auto& x) {
return [=](const auto& n) { return n + x; };
};
Правильно ли хранить их в заголовочном файле? (есть побочные эффекты?)
Вы можете хранить их в заголовке без каких-либо проблем. Если у вас одна и та же функция с одинаковыми аргументами, это может вызвать проблемы, но если у вас разные имена или аргументы, она перегружается и не имеет проблем.
Что касается conts, они могут храниться в заголовках, чтобы потом использовать их в разных программах. Так же, как функции, вы можете использовать константу (определенную вами), когда вам это нужно.
В качестве «побочных эффектов» я бы сказал, что вы можете включить заголовок в другой файл и использовать свою функцию без необходимости ее повторного объявления.
Других решений пока нет …