QList<float* 类型的 NULL 返回值>
NULL return value of type QList<float*>
我想为返回 QList<float*>(如果处理失败,我想返回)。
如何正确构建空QList<float*>?
通常,对于非指针类型,没有"null 值"这样的东西。选项包括:
- 失败时引发异常
- 返回一个空列表,如果它永远不能是一个有效的结果
- 返回可为空的包装器类型,如
boost::optional<QList>
或std::pair<bool, QList>
返回指向 QList 的指针,然后测试它的空指针,我认为这就是你的要求,对不起,如果我误解了
void someClass::test()
{
std::shared_ptr<QList<float> > testList = doSomething()
if(testList == nulllptr)
{
// Then its null
}
else
{
// Do whatever you want with it
}
}
std::shared_ptr<QList<float>> someClass::doSomething()
{
std::shared_ptr<QList<float>> someList; // = NULL at the moment
if(weWantValues) // Lets just pretend this bool knows if we want values
{
someList = std::make_shared<QList<float>(); // now a shared pointer to a list
// Populate with whatever values you want. use ".get()" or "->" to access list
}
// this may be null or populated so check if it == nullptr before using
// Like we do in the function above
return someList;
}
您可以使用
return {}
而不是nullptr,如下所示:
QList<QObject *> getModel(int id)
{
if (id < 0)
return {};
return m_myModel->model();
}
相关文章:
- 从python中调用C++函数并获取返回值
- 为什么模板类中的对象不能返回值
- 返回值优化:显式移动还是隐式
- lock_guard是否保护返回值
- 调用CreateProcess()并获取字符串的返回值
- 如何使 windows 命令提示符在C++可执行文件上显示返回值?
- 编译器警告:执行到达值返回函数的末尾而不返回值
- 查找 GCD:并非所有控制路径都返回值
- 在 Arduino 上使用 sscanf 会导致与 const char * 不匹配,并且返回值始终相同,尽管输入值不同
- 将返回值存储在函数指针数组的指针中是如何工作的?
- 如何从 std::thread 返回值
- 将返回值从 exe 传递到 bat,并将其传递给 C# 中的进程
- 方法错误"not all control paths return a value"和方法不返回值
- 如何读取 C++ SAFEARRAY**,该 SAFEARRAY** 是 COM 互操作的结果,其中 C# 返回值为
- 对fread的返回值感到困惑
- 程序不向函数返回值
- 如何返回值为NULL的变量指针
- C Getter不返回值(null)
- QList<float* 类型的 NULL 返回值>
- 在用C++编写的COM客户端中引发异常的Null返回值