Macro BOOST_TTI_TRAIT_MEMBER_TYPE
BOOST_TTI_TRAIT_MEMBER_TYPE — Expands to a metafunction whose typedef 'type' is either the named type or a marker type.
Synopsis
BOOST_TTI_TRAIT_MEMBER_TYPE(trait, name)
Description
trait = имя метафункции в пространстве имен tti.
Имя = имя внутреннего типа.
Он генерирует метафункцию, называемую чертой, где черта является макропараметром. Шаблон<класс BOOST_TTI_TP_T,class BOOST_TTI_TP_MARKER_TYPE = boost::tti::detail::notype>struct trait { typedef unspecified type; typedef BOOST_TTI_TP_MARKER_TYPE boost_tti_marker_type; Типы метафункций и возврат: BOOST_TTI_TP_T = тип оболочки. BOOST_TTI_TP_MARKER_TYPE = (необязательно) тип для использования в качестве типа маркера. По умолчанию для внутреннего импульса::tti::detail::notype. returns = 'тип' - это внутренний тип 'имя', если внутренний тип существует в закрытом типе, иначе 'тип' - это тип маркера. Если конечный пользователь не указывает тип маркера, то используется внутренний бустер::tti::detail::notype. Метафункция также инкапсулирует тип маркерного типа как вложенный «boost_tti_marker_type».
Цель этого макроса состоит в том, чтобы инкапсулировать тип «имя» как тип «тип» метафункции, но только в том случае, если он существует в закрытом типе. Это позволяет оценить существование внутреннего типа без возникновения ошибки компилятора, которая может быть использована другими метафункциями в этой библиотеке.