Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio不允许查看默认参数? 我使用OpenCV在一个C++项目上使用VS2010。opencv中的许多调用在函数的最后几个参数中都有默认参数。但是,当在函数调用中忽略这些参数时,VisualStudio会抱怨并说“functionname:调用的参数太少_C++_Visual Studio_Opencv - Fatal编程技术网

Visual studio不允许查看默认参数? 我使用OpenCV在一个C++项目上使用VS2010。opencv中的许多调用在函数的最后几个参数中都有默认参数。但是,当在函数调用中忽略这些参数时,VisualStudio会抱怨并说“functionname:调用的参数太少

Visual studio不允许查看默认参数? 我使用OpenCV在一个C++项目上使用VS2010。opencv中的许多调用在函数的最后几个参数中都有默认参数。但是,当在函数调用中忽略这些参数时,VisualStudio会抱怨并说“functionname:调用的参数太少,c++,visual-studio,opencv,C++,Visual Studio,Opencv,这是visual studio的一个怪癖吗?这是一个我可以关闭的设置吗?为什么会发生这种情况。代码在g++下编译得很好 编辑 例如, #include <cv.h> #include <cxcore.h> int main() { CvMat *rotation_vector = cvCreateMat(3,3, CV_64FC1); double rotation[] = { 0, 1, 0, -1, 0, 0,

这是visual studio的一个怪癖吗?这是一个我可以关闭的设置吗?为什么会发生这种情况。代码在g++下编译得很好

编辑

例如,

#include <cv.h>
#include <cxcore.h>

int main()
{

    CvMat *rotation_vector = cvCreateMat(3,3, CV_64FC1);
    double rotation[] = { 0, 1, 0,
                -1, 0, 0,
                0, 0, 1 };

    cvInitMatHeader(rotation_vector, 3, 3, CV_64FC1, rotation, 2147483647); // works
        cvInitMatHeader(rotation_vector, 3, 3, CV_64FC1, rotation); // doesn't work
    return 0;
}
#包括
#包括
int main()
{
CvMat*旋转向量=cvCreateMat(3,3,CV_64FC1);
双旋转[]={0,1,0,
-1, 0, 0,
0, 0, 1 };
CVinitMathHeader(旋转向量,3,3,CV_64FC1,旋转,2147483647);//有效
CVinitMathHeader(旋转向量,3,3,CV_64FC1,旋转);//不起作用
返回0;
}

cvInitMatHeader()的声明如下:

CVAPI(CvMat*) cvInitMatHeader( CvMat* mat, int rows, int cols, int type,
    void* data CV_DEFAULT(NULL), int step CV_DEFAULT(CV_AUTOSTEP) ); 
CV\u DEFAULT
的定义如下:

#ifdef __cplusplus
    #define CV_DEFAULT(val) = val
#else
    #define CV_DEFAULT(val)
#endif
<> P> >你的Visual C++编译器实际上是编译在C模式而不是C++模式下。在C模式下,<代码> >
<> P>并确保您在C++模式下编译代码。也就是说,确保“<代码> /TP > /COD>或/TP< /Cult>编译器开关被启用。您还应该确保C++文件具有<代码> .CPP < /Cord>文件扩展名。< / P>您能提供一个具体的例子吗?您可以提供一些代码。很好。当键入cvInitMatHeader()时,intellisense会提供参数列表。它如下所示:“(CvMat mat,int rows,int cols,int type,void*data=(void)0,int step=2147483647)“@soxarered:嗯,我想让你在
cxcore.h
文件中找到实际的声明本身。可能有一些宏,intellisense可能不显示它们。@soxarered:您的意思是如果定义了
\uuuCPlusplus
,那么使用等号形式吗?我认为你的VC++项目是编译C代码而不是C++代码,所以<代码>