Здравствуйте, Chorkov, Вы писали:
C>А нельзя ли сохранить value семантику?
C>У меня, в том числе, операторы (+, -, >, <..) определены + унификация с другими value-типами, для использования в шаблонных функциях.
C>Через интерфейсы будет менее удобно.
Делайте классическим способом:
int FOO_API foo_init(void**);
void FOO_API foo_done(void**);
int FOO_API foo_do_work(void*,int);
struct Foo {
void *handle;
Foo() { foo_init(&handle); }
~Foo() { foo_done(&handle); }
int do_work(int x) { return foo_do_work(handle,x); }
};
// всё обёртки генерировать скриптом.
C>и ручной подсчет ссылок в конструкторах?
Причем тут подсчет ссылок, это к тому что у библиотеки может быть свой runtime и в частности свой менеджер памяти.