RedisProperties. и @Value (& ldquo; $ {spring.redis.pool.max-idle: 100} & rdquo;)

Должен ли я просто специализировать begin () и end ()?

Насколько мне известно, этого достаточно. Вы также должны убедиться, что приращение указателя будет начинаться с начала до конца.

Следующий пример (отсутствует версия const begin и end) компилируется и работает нормально.

#include <iostream>
#include <algorithm>

int i=0;

struct A
{
    A()
    {
        std::generate(&v[0], &v[10], [&i](){  return ++i;} );
    }
    int * begin()
    {
        return &v[0];
    }
    int * end()
    {
        return &v[10];
    }

    int v[10];
};

int main()
{
    A a;
    for( auto it : a )
    {
        std::cout << it << std::endl;
    }
}

Вот еще один пример с функциями begin / end as. Они должны находиться в том же пространстве имен, что и класс, из-за ADL:

#include <iostream>
#include <algorithm>


namespace foo{
int i=0;

struct A
{
    A()
    {
        std::generate(&v[0], &v[10], [&i](){  return ++i;} );
    }

    int v[10];
};

int *begin( A &v )
{
    return &v.v[0];
}
int *end( A &v )
{
    return &v.v[10];
}
} // namespace foo

int main()
{
    foo::A a;
    for( auto it : a )
    {
        std::cout << it << std::endl;
    }
}
0
задан cmB 17 January 2019 в 12:26
поделиться