![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Segmentational FinenessBoost , Chapter 1. Boost.Icl , Function Reference
|
выборСииМив качестве заполнителей.
ИндексыiSiиMiпредставляют собой свойство, называемоесегментационной тонкостьюили короткойтонкостью, которая представляет собойчерту типана интервальных контейнерах.
|
|
Сегментационная тонкость представляет собой тот факт, что для интервальных контейнеров, содержащих одни и те же элементы, разделительный интервальный контейнер может содержать больше сегментов, чем разделительный контейнер, который, в свою очередь, может содержать больше сегментов, чем соединительный. Так что для одного
operator >
где
x > y // means that x is_finer_than y // we have finer coarser split_interval_set interval_set > separate_interval_set > split_interval_map interval_map
Это соотношение необходимо для разрешения инстанциации операторов фиксации (например,<Toperator
+(P,Q)
>для двух типов интервальных контейнеров<P
>и<Q
>). Если оба<P
>и<Q
>являются кандидатами на тип результата<T
>, один из них должен быть выбран компилятором. Мы выбираем тип, который является более сегментационным, чем тип результата<T
>. Таким образом, мы не теряем информацию сегмента, которая хранится вболее тонкомодном из типов контейнеров<P
>и<Q
>.
// overload tables for T operator + (T, const P&) T operator + (const P&, T) element containers: interval containers: + | e b s m + | e i b p S1 S2 S3 M1 M3 ---+-------- ---+--------------------------- e | s e | S1 S2 S3 b | m i | S1 S2 S3 s | s s b | M1 M3 m | m m p | M1 M3 S1 | S1 S1 S1 S2 S3 S2 | S2 S2 S2 S2 S3 S3 | S3 S3 S3 S3 S3 M1 | M1 M1 M1 M3 M3 | M3 M3 M3 M3
Таким образом, при поиске комбинации типов, например<T
operator+
(interval_map,split_interval_map)
>, которая эквивалентна<T
operator+
(M1,M3)
>, мы находим для типа строки<M1
>и типа столбца<M3
>, что<M3
>будет назначен как тип результата, потому что<M3
>лучше, чем<M1
>. Таким образом, эта комбинация типов приведет к выбору этого типа.
split_interval_map operator + (const interval_map&, split_interval_map)
Реализация компилятором.
Статья Segmentational Fineness раздела Chapter 1. Boost.Icl Function Reference может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Function Reference ::
реклама |