![]() |
![]() ![]() ![]() ![]() |
![]() |
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 ::
реклама |