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

boost/python/overloads.hpp

Boost , Boost.Python Reference Manual , Chapter 4. Function Invocation and Creation

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

Определяет средства для генерации семейств перегруженных функций Python и методов классов расширений из функций C++ и функций-членов с аргументами по умолчанию или из аналогичных семейств перегрузок C++

Выражение перегрузки-диспетчеризации используется для описания семейства перегруженных методов, генерируемых для класса расширения. Обладает следующими свойствами:

docstring

ntbs, значение которых будет привязано к методам.<__doc__>атрибут

keywords

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

call policies

Пример некоторых типов, которые моделируют CallPolicies.

minimum arity

Минимальное количество аргументов, принимаемых сгенерированным методом перегрузки.

maximum arity

Максимальное количество аргументов, принимаемых сгенерированным методом перегрузки.

Перегрузочный диспетчер X - это класс, который имеет минимальную и максимальную активность, и для которого следующие ниже действительные выражения перегрузки-диспетчера с той же минимальной и максимальной активностью, что и перегрузка-диспетчер.

X()
X(docstring)
X(docstring, keywords)
X(keywords, docstring)
X()[policies]
X(docstring)[policies]
X(docstring, keywords)[policies]
X(keywords, docstring)[policies]

* Если политика предоставляется, она должна быть примером типа, модели которогоПолитика вызоваи будет использоваться в качестве политики вызова результата. В противном случае политика вызова результата будет примером<default_call_policies>. Если докстринг подается, он должен бытьntbsи будет использоваться в качестве докстринга результата. В противном случае результат имеет пустую докстринг. Если ключевые слова поставляются, это должно быть результатом выраженияключевых слов, длина которого не превышает максимальную частоту X и будет использоваться в качестве ключевых слов результата. В противном случае ключевые слова будут пустыми.

BOOST_PYTHON_FUNCTION_OVERLOADS(name, func_id, min_args, max_args)

Расширяет определение перегрузочного диспетчера, называемого именем в текущем объеме, который может быть использован для создания следующего вызова функции:

func_id(a1, a2,...ai);

Для всех<min_args<= i<= max_args>.

BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(name, member_name, min_args, max_args)

Расширяет определение перегрузочного диспетчера, называемого именем в текущем объеме, который может быть использован для создания следующего вызова функции:

x.member_name(a1, a2,...ai);

Для всех min_args<= i<= max_args, где x является ссылкой на объект класса типа.

#include <boost/python/module.hpp>
#include <boost/python/def.hpp>
#include <boost/python/args.hpp>
#include <boost/python/tuple.hpp>
#include <boost/python/class.hpp>
#include <boost/python/overloads.hpp>
#include <boost/python/return_internal_reference.hpp>
using namespace boost::python;
tuple f(int x = 1, double y = 4.25, char const* z = "wow")
{
    return make_tuple(x, y, z);
}
BOOST_PYTHON_FUNCTION_OVERLOADS(f_overloads, f, 0, 3)
struct Y {};
struct X
{
    Y& f(int x, double y = 4.25, char const* z = "wow")
    {
        return inner;
    }
    Y inner;
};
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_member_overloads, f, 1, 3)
BOOST_PYTHON_MODULE(args_ext)
{
    def("f", f,
        f_overloads(
            args("x", "y", "z"), "This is f's docstring"
        ));
    class_<Y>("Y")
        ;
    class_<X>("X", "This is X's docstring")
        .def("f1", &X::f,
                f_member_overloads(
                    args("x", "y", "z"), "f's docstring"
                )[return_internal_reference<>()]
        )
        ;
}

PrevUpHomeNext

Статья boost/python/overloads.hpp раздела Boost.Python Reference Manual Chapter 4. Function Invocation and Creation может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Chapter 4. Function Invocation and Creation ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 21:04:25/0.0094401836395264/1