Concept ObjectTransform
ObjectTransform
Description
ObjectTransform - это тип функции или тип указателя функции, где тип возврата Obj является типом объекта, а аргументы - преобразованиями. является_callable< Obj >:: стоимость должна быть ложной. При применении ObjectTransform имеет эффект построения объекта типа Obj' (см. ниже), передавая в качестве параметров конструкции результат (ы) применения Transform(s) Тн.
Тип Obj может быть шаблонной специализацией, представляющей лямбда-выражение времени компиляции. Например, если Obj является std::pair, то тип результата ObjectTransform вычисляется путем замены типа proto::_value результатом применения преобразования proto::_value. Для данных типов Obj, Expr, State и Data можно сказать, что тип Obj' представляет собой тип Obj после того, как все вложенные преобразования были заменены результатами применения преобразований с Expr, State и Data в качестве аргументов преобразования.
Если тип Obj не является шаблонной специализацией, представляющей лямбда-выражение компилятивного времени, то тип результата Obj' такой же, как и Obj.
Notation
- Obj
- A type playing the role of object-type in the ObjectTransform concept.
- Tn
- A type playing the role of transform-type in the ObjectTransform concept.
- Expr
- A type playing the role of expression-type in the ObjectTransform concept.
- State
- A type playing the role of state-type in the ObjectTransform concept.
- Data
- A type playing the role of data-type in the ObjectTransform concept.
expr
- Object of type Expr
state
- Object of type State
data
- Object of type Data
Models
- std::pair< boost::proto::_value, int>(boost::proto:::_value, int())