I am able to compile OpenCV 2.4.6 on VS 2010 but it gives compilation error on VS 2012 and VS 2013.
Following error is seen on VS 12 and VS 13:
opencv\modules\core\include\opencv2/core.hpp(1136): fatal error C1075: end of file found before the left brace '{' at '......\modules\features2d\src\features2d_init.cpp(187)' was matched
Snipet from core.hpp
template<typename_Tp>void addParam(Algorithm& algo,constchar* name,
Ptr<_Tp>& value,bool readOnly=false,
Ptr<_Tp>(Algorithm::*getter)()=0,
void(Algorithm::*setter)(constPtr<_Tp>&)=0,//LINE 1136
constString& help=String());
Snipet from features2d_init.cpp
CV_INIT_ALGORITHM(GridAdaptedFeatureDetector,"Feature2D.Grid",
obj.info()->addParam(obj,"detector", obj.detector);
obj.info()->addParam(obj,"maxTotalKeypoints", obj.maxTotalKeypoints);
obj.info()->addParam(obj,"gridRows", obj.gridRows);
obj.info()->addParam(obj,"gridCols", obj.gridCols));//LINE 187
The same code compiles on VS 2010.
Any pointers to fix this problem?