之前的程序用到的是OpenCV1.0~现在打算用OpenCV2.4,但是替换头文件后(将1.0的头文件替换为2.4并包含在工程中),出现了如下问题:1>  WRImgFtureData.cpp
*\xcomplex(250): error C2027: 使用了未定义类型“_Ty”
*\xcomplex(250): error C2226: 语法错误 : 意外的“std::complex<_Other>”类型
*\xcomplex(250): error C2065: “_Ty”: 未声明的标识符
*\xcomplex(250): error C2226: 语法错误 : 意外的“std::complex”类型
*\xcomplex(250): error C2059: 语法错误:“)”
*\xcomplex(263): error C2065: “_Ty”: 未声明的标识符
*\xcomplex(263): error C2065: “_Ty”: 未声明的标识符
*\xcomplex(264): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
*\xcomplex(264): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>d:\..
..\includeopencv\opencv\opencv2\core\core.hpp(2631): error C2059: 语法错误:“常量”
..\includeopencv\opencv\opencv2\core\core.hpp(2631): error C3805: “常量”: 意外标记,应输入“}”或者“,”xcomplex为1>c:\program files\microsoft visual studio 10.0\vc\include\
目录下文件,为了让大家看的方便,在这边都替换为“*”
..为工程目录,这边也省略,让大家更方便阅读,避免太长大家看乱了~以下是xcomplex第249-266行的代码249 _TMPLT(_Ty) inline
250 _Ty abs(const _CMPLX(_Ty)& _Left)
251 { // return |complex| as real
252 int _Leftexp;
253 _Ty _Rho = _Fabs(_Left, &_Leftexp); // get magnitude and scale factor
254
255 if (_Leftexp == 0)
256 return (_Rho); // no scale factor
257 else
258 return (_CTR(_Ty)::ldexp(_Rho, _Leftexp)); // scale result
259 }
260 _TMPLT(_Ty) inline
261 _CMPLX(_Ty) cosh(const _CMPLX(_Ty)& _Left)
262 { // return cosh(complex)
263 return (_CMPLX(_Ty)(
264 _CTR(_Ty)::_Cosh(real(_Left), _CTR(_Ty)::cos(imag(_Left))),
265 _CTR(_Ty)::_Sinh(real(_Left), _CTR(_Ty)::sin(imag(_Left)))));
266 }
麻烦大家帮我看看这是什么问题?该如何解决?