0

我已经从 opencv 中分叉出来,当我尝试在我的命名空间中修改一次模板化代码以进行专业化时,我收到错误:

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 回答