可以在头文件中声明 const 向量吗?
Possible to declare const vector in header file?
下面是来自头文件的一些简化代码,其中声明了自由函数但未定义,并且声明和定义了向量。
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
您可以在 header 中将 const 变量声明为:
extern
const std::vector<std::function<void(const std::string&, const std::string&)>> m_myVector;
下面是来自头文件的一些简化代码,其中声明了自由函数但未定义,并且声明和定义了向量。
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
您可以在 header 中将 const 变量声明为:
extern
const std::vector<std::function<void(const std::string&, const std::string&)>> m_myVector;