Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

boost/python/def_visitor.hpp

Boost , Boost.Python Reference Manual , Chapter 2. High Level Components

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

предоставляет общий интерфейс посещения, через которыйclass_Функция def-члена может быть расширена ненавязчиво, чтобы избежать загромождения класса.интерфейс. Он объявляет шаблон класса<def_visitor<T>>, который параметризован по производному типу<DerivedVisitor>, который обеспечивает фактическую функциональность<def>через его<visit>функции-члены.

Класс<def_visitor>является базовым классом, параматеризованным его производным классом. Класс<def_visitor>является классом протокола. Предполагается, что его производный класс, DerivedVisitor, будет иметь членскую функцию<visit>. Класс<def_visitor>никогда не создается непосредственно. Вместо этого экземпляр его подкласса, DerivedVisitor, передается в качестве аргумента классу.<def>Функция члена.

namespace boost { namespace python {
    template <class DerivedVisitor>
    class def_visitor {};
}

Requires

Ожидается, что параметр шаблона DerivedVisitor, предоставленный клиентом, будет: * быть получен в частном порядке из def_visitor * предоставлять другу доступ к классу def_visitor_access * определять одну или обе функции участника посещения, перечисленные в таблице ниже:

выражение

Тип возврата

Требования

последствия

<visitor.visit(cls)>

<void>

<cls>является примеромкласса, завернутого в Python.<visitor>является<def_visitor>производным классом.

Призыв к<cls.def(visitor)>направляется к этой функции члена.

<visitor.visit(cls,name,options)>

<void>

<cls>являетсяклассом_экземпляр, имя - строка C.<visitor>является<def_visitor>производным классом. Варианты — это контекстный необязательный аргумент.

Звонок в<cls.def(name,visitor)>или<cls.def(name,visitor,options)>перенаправляется на эту функцию члена.

class X {/*...*/};
class my_def_visitor : boost::python::def_visitor<my_def_visitor>
{
  friend class def_visitor_access;
  template <class classT>
  void visit(classT& c) const
  {
    c.def("foo", &my_def_visitor::foo);
    c.def("bar", &my_def_visitor::bar);
  }
  static void foo(X& self);
  static void bar(X& self);
};
BOOST_PYTHON_MODULE(my_ext)
{
  class_<X>("X")
    .def(my_def_visitor());
}

PrevUpHomeNext

Статья boost/python/def_visitor.hpp раздела Boost.Python Reference Manual Chapter 2. High Level Components может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Chapter 2. High Level Components ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 21:48:44/0.0066330432891846/0