如何将所有值与initializer_list分开?

时间:2016-12-19 13:59:49

标签: c++ constructor initializer-list

我有以下构造函数:

JSON(initializer_list<myType> myList){

    if (end == NULL) {
        for(int i=0;i < myList.size() ; i++){
            end = myList(i); /* fix this */
        }

    }

}

endstruct myTypemyType的值为struct myType *next,指向下一个struct myType,我希望得到每个人myType来自initializer_list,以便我可以手动将它们全部放入。当我写end = myList(i);时,它会抛出错误,获取每个值的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

您必须将对象复制出initializer_list,并且无法将其编入索引(因为它不能用作适当的容器)。

但是,您可以在for循环中访问列表成员:

JSON(initializer_list<myType> myList){

    if (end == NULL) {
        for(auto& elem : myList){
            end = elem;

            // do something more with end?
        }
    }

}

但是,end == NULL可能不是测试空列表的正确方法,但我不知道如果没有看到其余的系列。