如果要向函数中传递个数不确定但类型一样的实参,则可以在函数用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里的值要放到{}里。