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

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

<def()>— это функция, которая может использоваться для раскрытия функций C++ и вызывающих вызов объектов в качестве функций Python втекущем объеме..

template <class F>
void def(char const* name, F f);
template <class Fn, class A1>
void def(char const* name, Fn fn, A1 const&);
template <class Fn, class A1, class A2>
void def(char const* name, Fn fn, A1 const&, A2 const&);
template <class Fn, class A1, class A2, class A3>
void def(char const* name, Fn fn, A1 const&, A2 const&, A3 const&);

Requires

Оригинальное название:ntbs, что соответствует правилам именования идентификаторов Python.

  • Если<Fn>[производится от]объекта, то он будет добавлен ктекущему объемув качестве одной перегрузки. Чтобы быть полезным,<fn>должен бытьвызывающим.
  • Если<a1>является результатомперегрузки-диспетчеризации-экспрессии, допускается только вторая форма и<fn>должен быть указателем для функции или указателем для функции члена, чьяаритмиятакая же, как у A1максимальная аритмия.

    Эффекты:Для каждого префикса<P>из<Fn>последовательности типов аргументов, начиная с того, чья длина<A1>минимальная аритмия, добавляет<name(...)>перегрузку функциитекущего объема. Каждая сгенерированная перегрузка вызывает экспрессию вызова a1 с помощью P, используя копию политик вызова a1. Если самый длинный действующий префикс A1 содержит N типов, а a1 содержит M ключевых слов, начальная последовательность ключевых слов используется для всех, кроме первых аргументов N - M каждой перегрузки.

  • В противном случае fn должен быть указателем ненулевой функции или функции-члена, и к текущему объему добавляется одна перегрузка функции, построенная вокруг fn. Если подается какой-либо из a1-a3, они могут быть выбраны в любом порядке из таблицы ниже.

Мнемоническое имя

Требования/Свойства типа

Эффекты

докстринг

Любыеntbs

Значение будет привязано к<__doc__>атрибуту полученного способа перегрузки.

политики

МодельCallPolicies

Копия будет использоваться в качестве политики вызова результирующего метода перегрузки.

Ключевые слова

Результатключевое слово-выражениес указанием не более аргументов, чемarity<fn>.

В качестве политики вызова результирующего метода будет использоваться копия.

Example

#include <boost/python/def.hpp>
#include <boost/python/module.hpp>
#include <boost/python/args.hpp>
using namespace boost::python;
char const* foo(int x, int y) { return "foo"; }
BOOST_PYTHON_MODULE(def_test)
{
    def("foo", foo, args("x", "y"), "foo's docstring");
}

PrevUpHomeNext

Статья boost/python/def.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:05:32/0.0089218616485596/1