У меня есть следующая подпись шаблона:
// LoggingImpl.hpp
template <typename... Ts>
static void LogFatal(int32_t lineNumber, const char* function, const char* format, const Ts&... args) noexcept;
Определение функции находится в соответствующем. cpp файле:
// LoggingImpl.cpp
template <typename... Ts>
static void LoggingImpl::LogFatal(int32_t lineNumber, const char* function, const char* format, const Ts&... args) noexcept
{
// some function definition here.
}
The. cpp файл также содержит явное определение, поэтому я не получаю ошибку компоновщика.
// LoggingImpl.cpp
template void LoggingImpl::LogFatal<char*>(int32_t, const char*, const char*, const char*) noexcept;
Я нахожусь на машине Win 10, использую компиляцию Visual Studio 2019 с использованием MSV C.
Вопрос: Как я могу разделить определение функции шаблона в исходный файл (. cpp), если мой шаблон содержит вариативные c функции. Я не знаю, как добавить явную подпись, если шаблон предназначен для переменных c аргументов.