Macro BOOST_PROTO_EXTENDS_USING_ASSIGN_NON_DEPENDENT
BOOST_PROTO_EXTENDS_USING_ASSIGN_NON_DEPENDENT — For exposing in classes that inherit from
proto::extends<>
the overloaded assignment operators defined therein. Unlike the
BOOST_PROTO_EXTENDS_USING_ASSIGN()
macro,
BOOST_PROTO_EXTENDS_USING_ASSIGN_NON_DEPENDENT()
is for use in non-dependent
contexts.
Synopsis
BOOST_PROTO_EXTENDS_USING_ASSIGN_NON_DEPENDENT(Derived)
Description
Стандартное использование<proto::extends<>
>заключается в определении шаблона класса, который наследуется от него. Полученный шаблон класса автоматически получает оператор назначения, генерируемый компилятором, который скрывает те, которые определены в<proto::extends<>
>. Использование<BOOST_PROTO_EXTENDS_USING_ASSIGN()
>в производном классе решает эту проблему.
Однако, если расширение выражения является обычным классом, а не шаблоном класса, использование<BOOST_PROTO_EXTENDS_USING_ASSIGN()
>находится в так называемом независимом контексте. На простом английском языке это означает, что незаконно использовать<typename
>в некоторых местах, где это требуется в шаблоне класса. В таких случаях следует использовать<BOOST_PROTO_EXTENDS_USING_ASSIGN_NON_DEPENDENT()
>.
Смотрите также: