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

boost/python/init.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

определяет интерфейс для экспонирования конструкторов C++ на Python как функции класса расширений<__init__>.

Инит-экспрессия используется для описания семейства<__init__>методов, генерируемых для класса расширения, и результат имеет следующие свойства:

docstring

ntbs, значение которого будет связано с атрибутом метода<__doc__>

keywords

ключевое слово-выражение, которое будет использоваться для обозначения (следующей последовательности) аргументов для генерируемой функции (функций)<__init__>.

call_policies

Пример моделиCallPolicies.

argument_types

MPL-последовательность типов аргументов C++, которая будет использоваться для построения обернутого объекта C++. Выражение init имеет один или несколько действительных префиксов, которые даются последовательностью префиксов его типов аргументов.

Последовательность MPL, которая может быть использована для указания семейства одной или более функций __init__. Только последний Ti может быть инстанциацией факультативного<...>.

namespace boost { namespace python
{
  template <T1 = unspecified,...Tn = unspecified>
  struct init
  {
    init(char const* doc = 0);
    template <class Keywords> init(Keywords const& kw, char const* doc = 0);
    template <class Keywords> init(char const* doc, Keywords const& kw);
    template <class CallPolicies>
    unspecified operator[](CallPolicies const& policies) const
  };
}}
init(char const* doc = 0);
template <class Keywords> init(Keywords const& kw, char const* doc = 0);
template <class Keywords> init(char const* doc, Keywords const& kw);

Requires

Если же это так, то. В случае поставки, kw является результатом

Effects

Результатом является инит-выражение, докстринг которого является док и ключевые слова которого являются ссылкой на kw. Если используется первая форма, ключевые слова полученного выражения пусты. Политика вызова выражения является примеромполитики по умолчанию. Если Tnфакультативный, действительные префиксы выражения даны:

(T1, T2,...Tn-1), (T1, T2,...Tn-1 , U1), (T1, T2,...Tn-1 , U1, U2), ...(T1, T2,...Tn-1 , U1, U2,...Um)

. В противном случае выражение имеет один действительный префикс, данный аргументами шаблона, указанными пользователем.

template <class Policies>
unspecified operator[](Policies const& policies) const

Requires

Политика — это модельCallPolicies.

Effects

Возвращает новоевыражение initсо всеми теми же свойствами, что и объект init, за исключением того, что его политика вызова заменяется ссылкой на политику.

Последовательность MPL, которая может быть использована для указания дополнительных аргументов для функции __init__.

namespace boost { namespace python
{
  template <T1 = unspecified,...Tn = unspecified>
  struct optional {};
}}

С учетом деклараций C++:

class Y;
class X
{
 public:
   X(int x, Y* y) : m_y(y) {}
   X(double);
 private:
   Y* m_y;
};

Соответствующий буст. Класс расширения Python может быть создан с помощью:

using namespace boost::python;
class_<X>("X", "This is X's docstring.",
          init<int,char const*>(args("x","y"), "X.__init__'s docstring")[
                with_custodian_and_ward<1,3>()]
          )
   .def(init<double>())
   ;

PrevUpHomeNext

Статья boost/python/init.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 20:09:14/0.022981882095337/1