Theolizer  Version.1.2.0
serializer for C++ / Do you want to update your classes easily ?
rbfor.h ファイル

範囲ベースfor拡張 [詳解]

#include <stdexcept>
#include <utility>
rbfor.h の依存先関係図:

[ソースコード]

クラス

class  theolizer::BasicRange< tIterator >
 範囲ベースfor用のRageを管理する基底クラス [詳解]
 

名前空間

 theolizer
 theolizer名前空間
 

関数

template<template< class tIterator > class tRange, class tContainer , class tNextFunc = internal::NopFunctor>
auto theolizer::getRBForAdaptor (tContainer &&iContainer, tNextFunc &&iNextFunc=internal::NopFunctor()) -> typename internal::MakeRBForAdaptor< tRange, tContainer, tNextFunc >::Type
 汎用の範囲ベースfor用レンジ生成
 
template<class tContainer , class tNextFunc = internal::NopFunctor>
auto theolizer::getRBForSeparator (tContainer &&iContainer, tNextFunc &&iNextFunc=internal::NopFunctor()) -> typename internal::MakeRBForAdaptor< BasicRange, tContainer, tNextFunc >::Type
 範囲ベースforを分割できるようにするためのレンジ生成
 
template<class tContainer , class tNextFunc = internal::NopFunctor>
auto theolizer::getRBForIndexer (tContainer &&iContainer, tNextFunc &&iNextFunc=internal::NopFunctor()) -> typename internal::MakeRBForAdaptor< internal::Indexer, tContainer, tNextFunc >::Type
 範囲ベースforを分割できるようにし、かつ、インデックス番号用レンジ生成
 

詳解

範囲ベースfor拡張

①RBForAdaptor:範囲ベースfor専用の便利ツール   コンテナやレンジを受け取り、指定の「レンジ」へ設定して保持する。
  begin(), end()はRangeReferencerを返却する
②RBForReferencer:範囲ベースfor専用のiterator(かなり特殊)
  RBForAdaptorへの参照のみを保持する
    operator*()は「レンジ」を返却
    operator++()はRBForAdaptorのdrop_front()を呼ぶ
    operator!=()はRBForAdaptorのempty()を呼ぶ
※特記事項
  RBForAdaptor::end()が返却したインスタンスのメンバ関数は呼び出し禁止。
※注意事項:名前空間internalのアイテムは直接使わないこと

著者
Yoshinori Tahara
日付
2017/07/14 Created

rbfor.h に定義があります。