怎么返回一个无效的容器

如何返回一个无效的容器QListint test(){return nullptr}QListint test2(){QListint retreturn re

如何返回一个无效的容器

QList<int> test()
{
    return nullptr;
}

QList<int> test2()
{
    QList<int> ret;
    return ret;
}


test() 编译不能通过,而test2()可以

是不是必须得声明一个变量返回?可这里是局部变量啊,函数返回时声明周期也就结束了吧
[解决办法]
会拷贝一份的.
不是返回的指针和引用就没问题.
[解决办法]
c++不像java,什么都可以是null
可以考虑把返回类型改成指针
[解决办法]

QList<int> test3() {
  retrun QList<int>();//名字可以省略
}
QList<int> ret = test3(); //编译器会做RVO优化(return value optimization)具体可以google c++ rvo

[解决办法]
QList<int>* test()
{
    return nullptr;
}