Я специализируюсь на шаблонных функциях, когда доступны внутренние вычисления Intel.В моем случае SSE и AVX.Я хочу создать тестовую программу, в которой я называю неспециализированную функцию шаблона и специализированную функцию для сравнения производительности.Однако я не знаю, как вызывать неспециализированную функцию шаблона для типа, для которого она специализирована.
Вот упрощенный пример:
#include <iostream>
template <typename T>
void f(T val)
{
std::cout << "Template function. Value: " << val << std::endl;
}
template <>
void f(float val)
{
std::cout << "Float function. Value: " << val << std::endl;
}
int main()
{
f(1);
f(1.0f);
return 0;
}
Вопрос: есть ли способ вызова f(1.0f)
с неспециализированным шаблономфункция без изменения имен функций?
Пояснение: В моем случае две функции представлены в библиотеке как часть одной пары заголовка и файла реализации.Затем это включается (для шаблона) и связывается (для специализации) в программе.