可以在头文件中声明const向量吗?

时间:2015-07-16 11:04:30

标签: c++ c++11 const non-member-functions

下面是头文件中的一些简化代码,其中声明了自由函数但未定义,并且向量都被声明和定义。

cpp文件包含自由函数的实现。

我想知道是否有办法在头文件中声明向量并将定义放在cpp文件中。

// my-file.h

namespace MyNamespace
{
    bool foo(const std::string& name, const std::string& value);
    void bar(const std::string& name, const std::string& value);

    const std::vector<std::function<void(const std::string&, const std::string&)>> m_myVector
    {
        foo,
        bar,
        [](const std::string& name, const std::string& value)
        {
            // do some stuff
        }
    };

} // MyNamespace

1 个答案:

答案 0 :(得分:4)

您可以在标题中声明const变量:

extern
const std::vector<std::function<void(const std::string&, const std::string&)>> m_myVector;