Я набор функторов, как следующее:C++ 14 Generic лямбды в файле заголовка
const auto add = [](const auto& x) {
return [=](const auto& n) { return n + x; };
};
Правильно хранить их в заголовочном файле? (любые побочные эффекты?)
Я набор функторов, как следующее:C++ 14 Generic лямбды в файле заголовка
const auto add = [](const auto& x) {
return [=](const auto& n) { return n + x; };
};
Правильно хранить их в заголовочном файле? (любые побочные эффекты?)
Вы можете хранить их в заголовке без каких-либо проблем. Если у вас есть одна и та же функция с теми же аргументами, это может вызвать проблему, но если у вас разные имена или аргументы, она перегружает ее, и у нее нет проблем.
Что касается констант, они могут храниться в заголовках, чтобы использовать их позже в разных программах. Как функции, вы можете использовать константу (определенную вами), когда вам это нужно.
Как «побочные эффекты», я бы сказал, что вы можете указать заголовок в другом файле и использовать свою функцию без необходимости ее повторного использования.
Хорошо, спасибо. –
"* Как и для consts, они могут храниться в заголовках просто для их использования позже в разных программах. Так же, как и функции, вы можете использовать константу (определенную вами) всякий раз, когда вам это нужно. *« Если вы не используете их каким-либо образом что вызывает нарушения ODR, поскольку @TC упоминается ... – ildjarn
да, вы можете ..... я думаю, что нет никаких проблем ... вы его протестировали? –
Поскольку это на самом деле определение переменной (со странным типом, но все же) - не будет включать заголовок в нескольких файлах cpp, возникает проблема нескольких определений в отдельных единицах компиляции? –
Это не вызывает проблемы, так как это const и, как я читал, он связан внутри. –