#pybind11
Вопрос:
Правда или Ложь
Чтобы связать пользовательский тип/класс в C , вы также должны связать любые другие типы, которые отображаются в API пользовательского типа, а также любые другие типы, которые отображаются в конструкторах других типов.
Я хочу связать несколько пользовательских типов данных в проекте, над которым я только что начал, и хочу определить объем выполняемой работы.
Похоже, что для привязки pybind к определенному типу ему также необходимо знать о любых других типах, которые отображаются либо в качестве аргументов метода, либо возвращают значения из любого из методов типа. Кроме того, для создания этих других типов необходимо также связать любые другие типы, участвующие в конструкторах этих других типов. В принципе, нужно рекурсивно связать все типы в графе зависимостей, которые пересекаются в общедоступном API привязываемого типа, и все задействованные конструкторы. Это точно? Я что-нибудь пропустил?
Комментарии:
1. Правда, Python должен знать, как интерпретировать значения, которые он содержит. Таким образом, у вас есть возвращаемые значения привязки (функций/методов, которые вы переносите), а также для любой практической значимости также входные аргументы. Однако вам не обязательно делать все это в одной библиотеке. Если библиотека, из которой вы используете класс, уже имеет API Python, вы можете просто импортировать ее во время выполнения (Python)
2. В то же время, если бы ваш вопрос был более конкретным, с минимальным примером, на него действительно можно было бы ответить, а не комментировать
3. Это хорошая идея, я обновлю ее примером, в котором будет предпринята попытка исчерпывающе выявить все области, в которых привязка может распространяться на соответствующий фрагмент графика зависимостей. До сих пор я определил 3 случая в своей работе в реальном мире, аргумент конструктора цепочками сводится к первому конструктору, который является пустым или полностью содержит только примитивные типы, а также типы возвращаемых методов и, наконец, входные аргументы для методов.