std::initializer_list:接收可变形参个数函数的参数

如果要向函数中传递个数不确定但类型一样的实参,则可以在函数用std::initializer_list接收。std::initializer_list对象中的元素永远是常量值,我们无法改变std::initializer_list对象中元素的值。

void debugValue(const std::initializer_list<QJsonObject> & list,const QString & string)
{
    qDebug()<<"string:"<<string;
    std::for_each(list.begin(),list.end(),[](const QJsonObject & obj)
    {
        qDebug()<<obj;
    });
}

#define debug qDebug()<<
int main(int argc, char *argv[])
{
    debugValue({QJsonObject(),QJsonObject(),QJsonObject()},"传入3个");
    debug endl;
    debugValue({QJsonObject(),QJsonObject()},"传入2个");
}

放进std::initializer_list里的值要放到{}里。

std::initializer_list:接收可变形参个数函数的参数

上一篇:OneFlow 概念清单


下一篇:数组的初始化 array initializer is not allowed here