0

私は opencv から分岐し、特殊化のためにテンプレート化されたコードの 1 つを名前空間内で変更しようとすると、次のエラーが発生します。

make -k 

[100%] Building CXX object object_detection.cpp.o
In file included from object_detection.cpp:1:0:
object_detection.h:370:75: error: specialization of 'void cv::Ptr<_Tp>::delete_obj() [with _Tp = CvHaarClassifierCascade]' in different namespace [-fpermissive]
object_detection.h:370:30: error:   from definition of 'void cv::Ptr<_Tp>::delete_obj() [with _Tp = CvHaarClassifierCascade]' [-fpermissive]

別の名前空間でテンプレート コードを特殊化できないことは理解していますが、解決策はありますか?

4

1 に答える 1

0
  1. 名前空間を再開し、それに特化します。
  2. 関数については、ADL 経由で忠実に使用する場合は、パラメーターの名前空間にオーバーライドを作成します。
  3. ソース テンプレートが特性クラスまたは他の同様の手法を使用しているかどうかを確認してください。これらは傍受できます。
于 2013-02-28T19:27:04.893 に答える