Boost C++ 库

...世界上备受推崇且设计精良的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ 编码规范

宏 BOOST_PROTO_EXTENDS_USING_ASSIGN_NON_DEPENDENT - Boost C++ 函数库
PrevUpHomeNext

宏 BOOST_PROTO_EXTENDS_USING_ASSIGN_NON_DEPENDENT

BOOST_PROTO_EXTENDS_USING_ASSIGN_NON_DEPENDENT — 用于在继承自 proto::extends<> 的类中公开其中定义的重载赋值运算符。与宏 BOOST_PROTO_EXTENDS_USING_ASSIGN() 不同,宏 BOOST_PROTO_EXTENDS_USING_ASSIGN_NON_DEPENDENT() 用于非依赖上下文。

提要

// In header: <boost/proto/extends.hpp>

BOOST_PROTO_EXTENDS_USING_ASSIGN_NON_DEPENDENT(Derived)

描述

proto::extends<> 的标准用法是定义一个从它继承的类模板。派生类模板会自动获得一个编译器生成的赋值运算符,该运算符会隐藏在 proto::extends<> 中定义的运算符。在派生类中使用 BOOST_PROTO_EXTENDS_USING_ASSIGN() 可以解决这个问题。

但是,如果表达式扩展是一个普通类而不是类模板,则使用 BOOST_PROTO_EXTENDS_USING_ASSIGN() 处于所谓的非依赖上下文。用通俗的语言来说,这意味着在类模板中需要 `typename` 的某些地方,使用它是非法的。在这种情况下,您应该改用 BOOST_PROTO_EXTENDS_USING_ASSIGN_NON_DEPENDENT()

另请参阅


PrevUpHomeNext