1

在 OpenCV 库中有一个

typedef const _InputArray& InputArray;

在我们的代码中,我们有以下函数定义:

void wimshow(const String& winName, InputArray &img) {

编译时出现以下错误:

error: cannot declare reference to 'cv::InputArray {aka const class cv::_InputArray&}' void wimshow(const String& winName, InputArray &img) {

奇怪的是,这个错误只有在 Cray 环境中使用 GCC 4.8.1 时才会发生。使用 GCC 4.8.1 在普通 Linux 环境中编译可以正常工作。
乍一看,我会说对引用类型的引用并不是很有意义,但我很好奇是什么导致了不同的编译器行为!?

4

2 回答 2

5
于 2013-12-12T12:15:08.613 回答
1

对引用(as const const)的引用应该被忽略以使元模板编程更容易,因此您在 Cray 系统上看到的错误是一个错误。

于 2013-12-12T12:20:03.603 回答