一部の画像操作にOpenCVを使用していますが、正しく実行するにはデータ型を指定する必要がある関数がいくつかあります。私の考えは、これらの関数をテンプレート化することです。そのため、可能なデータ型ごとに個別の関数を記述する必要はありません。
ただし、私が書いているコードは、イメージをメモリに保存する既存の C コードと互換性があるようにしたいので、イメージを常にディスクに書き込むことなく簡単に渡すことができます。
私が直面している問題は、.h ファイルとライブラリを作成して、C プログラムが C++ テンプレート関数を呼び出せるようにする方法です。私はまだそれを試す機会がありませんでしたが、これまでのところ、次のようになります。
foo.h
int foo(int a, int, b);
float foo(float a, float b);
foo.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ファイルが必要なため、これは機能しません。だから私は提案にオープンです。助けてくれてありがとう