int main()
{
{
// sample(c_range_usage_1)
const int num = num_xs();
for (int i = 0; i < num; ++i) {
    const X * x = get_x(i);
    use(x);
}
// end-sample
}

{
// sample(c_range_usage_2)
const int num = num_xs();
std::vector<X*> xs(num);
get_xs(&xs[0]);
for (auto x : xs) {
    use(x);
}
// end-sample
}

{
// sample(c_range_usage_3)
int num = num_xs();
// some code to here change num,
// in order to take a subset of num_xs() ...
for (int i = 0; i < num; ++i) {
    const X * x = get_x(i);
    use(x);
}
// end-sample
}

{
// sample(c_range_usage_4)
int num = num_xs();
// Fiery explosion when i == num - 1.
// If we're lucky.
for (int i = 0; i < num; ++i) {
    const X * x = get_x(i);
    if (i == some_index())
        remove_x(i);
    use(x);
}
}
// end-sample

{
// sample(c++_lazy_range_usage)
x_range range = get_xs();
for (auto const & x : range) {
    use(x);
}

// This will use memcpy for PODs, etc.
std::vector<X> copy_of_xs(size(range));
std::copy(begin(range),
          end(range),
          copy_of_xs.begin());
// end-sample
}
    return 0;
}
Exemplo n.º 2
0
Arquivo: main.cpp Projeto: CCJY/coliru
 X():xs(get_xs()) {}