list

iterableをvectorに変換します。

template<typename T>
vector<T> list(shared_ptr<cIterable<T>> g) {
    vector<T>   v;
    while(g->exists_next())
        v.push_back(g->value());
    return v;
}

int main() {
    vector<int> v = list(range(3));
    cout << v[0] << v[1] << v[2] << endl;
}
012