头文件中的 C++14 通用 lambda

C++14 Generic lambdas in header file

我有如下一组仿函数:

const auto add = [](const auto& x) {
    return [=](const auto& n) { return n + x; };
};

将它们存储在头文件中是否正确? (有什么副作用吗?)

您可以毫无问题地将它们存储在 header 中。如果你有相同的函数和相同的参数,它可能会导致问题,但如果你有不同的名称或参数,它会重载它并且没有问题。

至于常量,它们可以存储在 header 中,以便稍后在不同的程序中使用它们。就像函数一样,您可以在需要时随时使用常量(由您定义)。

作为 "side effects" 我会说你可以在另一个文件中包含 header 并使用你的函数而不必重新声明它。