我正在使用 OpenCV 进行一些图像处理,它有几个必须指定数据类型才能正确执行的函数。我的想法是对这些函数进行模板化,这样我就不必为每种可能的数据类型编写单独的函数。
但是,我希望我正在编写的代码与我拥有的一些将图像存储在内存中的现有 C 代码兼容,这样我就可以更轻松地传递它,而无需不断地将图像写入磁盘。
我遇到的问题是如何让我的 .h 文件和库让 C 程序调用 C++ 模板函数。我还没有机会尝试它,但到目前为止,我所拥有的看起来如下:
foo.h
int foo(int a, int, b);
float foo(float a, float b);
富.c:
int foo(int a, int b) {
return footemp(a, b);
}
float foo(float a, float b) {
return footemp(a, b);
}
foo.hpp:
template<class t>
t footemp(t a, t b) {
return a + b;
}
这不起作用,因为它需要我的 .c 文件来了解模板文件。所以我愿意接受建议。预先感谢您的帮助