У меня есть следующее заявление в моем файле заголовка:Может ли статическая функция шаблона C++ быть в структуре с C-связью?
extern "C" {
struct lfModifier {
template<typename T>
static void ModifyColor_Vignetting_PA (
void *data, float x, float y, T *rgb, int comp_role, int count);
}
}
GCC, вероятно, справедливо жалуется на «Ошибка: шаблон C связи». Но шаблон статичен в конце концов. Я мог бы легко вывести его из класса в файл cpp. Я не люблю это делать, потому что наличие его в структуре повышает читаемость кода.
Есть ли способ иметь статический шаблон в этом контексте?
, даже если это возможно, для этого нет практического использования. –
. Что вы хотите достичь, используя ** член ** функцию с C-связью? Нет другой функции 'extern C' члена другого класса, способной использовать одно и то же имя? – MondKin
@Mondkin: Речь идет о библиотеке на C++. Я думаю (я поддерживаю код кого-то еще), цель состоит в том, чтобы использовать тот же заголовочный файл библиотеки для программ на C и C++. Программы C видят «struct» и атрибуты, а программы на C++ видят все, но с C-связью. Ну, а затем член шаблона выходит из строя. –