3
Ниже приведен упрощенный код из файла заголовка, в котором свободные функции объявлены, но не определены, и вектор объявлен и определен.Можно объявить const-вектор в файле заголовка?
Файл 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
Если вы съехать код с доступом к вектору отдельной единицы трансляции, вы можете использовать опережающее объявление: 'шаблон станда: вектор; '. –
Я не вижу вектор в коде. Вы ищете [extern] (http://stackoverflow.com/questions/10422034/when-to-use-extern-in-c) std :: vector? –
nwp
Не используйте имя типа 'm_myvector' для переменных, не являющихся членами, вы будете путать людей, читающих ваш код, потому что префикс' m_' условно означает член. –