-1

コードをクリーンに保つことを好むため、ヘッダー ファイルではなく cpp 内にテンプレートを記述するために、次のコードを使用しました。

C++ テンプレート関数定義の .CPP ファイルへの保存

.hpp
template <class obj_class> void plotLaser(int zoom, void * obj);

.cpp
class visualizer {...};
class annotator : public visualizer {...};
template void plotLaser<visualizer>(int zoom, void * obj) {...};

テンプレートを使用して呼び出すことはできますplotLaser<annotator>(...);か、それとも書き直す必要がありますか?

4

1 に答える 1

0

あなたはそれを書き直す必要があると思います。あなたのコード

    template void plotLaser<visualizer>(int zoom, void * obj) {...};

専門です。

アノテーター用に 1 つ必要な場合は、1 つの専門化が必要です。

于 2012-12-14T16:56:20.513 に答える