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 に定義があります。