Nanobind: Как использовать класс из другого модуля внутри модуля?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Nanobind: Как использовать класс из другого модуля внутри модуля?

Сообщение Anonymous »

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

Код: Выделить всё

NB_MODULE(common_definitions_ext, m)
{

nb::class_(m, "example_t")
.def(nb::init())
.def_rw("utc", &example_t::u_utc_time)
.def_rw("time_zone", &example_t::s32_time_zone);

}
< /code>
Теперь я могу создать такой объект из тестового примера, как это: < /p>
date = common_nb_definitions.example_t(1701340147, 180)
< /code>
Однако, когда я пытаюсь назначить это другому модулю: < /p>
input = another_module.another_module_input()
input.s_date = date
< /code>
он не удается так: < /p>
 input.s_date = date
^^^^^^^^^^^^
TypeError: (): incompatible function arguments. The following argument types are supported:
1. (self, arg: s_example_t, /) -> None
Любые предложения были бы очень оценены!


Подробнее здесь: https://stackoverflow.com/questions/778 ... ide-module
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»