gpt4 book ai didi

c++ - 从函数返回一个 std::Vector 需要一个默认值
转载 作者:行者123 更新时间:2023-11-28 01:39:29 27 4
gpt4 key购买 nike

我有一个这样的函数

static int locationinfo( const char *pszSrcFilename 
, const char *pszLocX
, const char *pszLocY
, const char *Srsofpoints=NULL
, std::vector<PixelData>& results=std::vector<PixelData>
/* char **papszOpenOptions = NULL,int nOverview = -1,*/
)
{
--filling results
return 1;


}

我要返回results从上面的功能。我用了&但编译器需要 results 的默认值,如何为 std::vector<PixelData> 定义默认值在函数定义中?

这是我的错误

error: default argument missing for parameter 5 of ‘int locationinfo(const char*, const char*, const char*, const char*, std::vector<PixelData>&)’
static int locationinfo(const char *pszSrcFilename , const char *pszLocX ,const char *pszLocY,const char *Srsofpoints=NULL
^~~~~~~~~~~~

谢谢

最佳答案

您可以简单地重新排序您的参数,以摆脱对 const 引用和默认参数声明的需要:

static int locationinfo( const char *pszSrcFilename 
, const char *pszLocX
, const char *pszLocY
, std::vector<PixelData>& results // <<<<
, const char *Srsofpoints=NULL // <<<<
/* char **papszOpenOptions = NULL,int nOverview = -1,*/
)
{
// ...
}

但是,如果您需要一个只接受前三个参数的函数,您可以另外使用一个简单的重载:

static int locationinfo( const char *pszSrcFilename 
, const char *pszLocX
, const char *pszLocY
) {
std::vector<PixelData> dummy;
return locationinfo(pszSrcFilename,pszLocX,pszLocY,dummy);
}

关于c++ - 从函数返回一个 std::Vector<object> 需要一个默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47844459/

27 4 0