27 Eylül 2017 Çarşamba

range Provide Ranges

any_range Sınıfı
Şu satırı dahil ederiz.
#include <boost/range/any_range.hpp>
Bu sınıf boost adaptorlerinin döndürdüğü range nesnesini sarmalayabilir.
Tanımlama
Şöyle yaparız
boost::any_range<std::shared_ptr<Foo>,boost::forward_traversal_tag> range;
Şöyle yaparız. Burada reference type ta belirtiliyor.
using FooRange = boost::any_range<FooPtr, boost::forward_traversal_tag, FooPtr const>;
Örnek
Şöyle yaparız.
std::vector<int> myInts = { 1,2,3,4,5 };
boost::any_range<const double,boost::forward_traversal_tag,const double> range =
    myInts | boost::adaptors::transformed(
      []( int x ) { return static_cast<double>( x ); } );

for ( double x : range )
    std::cout << x << "\n"; 
counting_range Sınıfı
Açıklaması şöyle
"A Range provides iterators for accessing a half-open range [first,one_past_last) of elements..."
Şöyle yaparız.
// Days of the week
for (auto const &i : boost::counting_range(0, 7))
//for (int i = 0; i <= 6; i++)
{
  ...
}
istream_range Sınıfı
Örnek ver

irange Sınıfı
Örnek ver

Hiç yorum yok:

Yorum Gönder