|
Theolizer
Version.1.2.0
serializer for C++ / Do you want to update your classes easily ?
|
範囲ベースfor拡張 [詳解]
#include <stdexcept>#include <utility>
クラス | |
| 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のアイテムは直接使わないこと
rbfor.h に定義があります。