Приветствую.
Нужно в асинхронную С либу отправлять разные типы данных без копирования памяти, которая делает обратный вызов и в нем уже можно освободить.
Первое что приходит в голову сделать объект вида std::list<std::shared_ptr<T>>, при вызове передавать итератор, а при обратном удалять итератор из std::list, но подцепить к вызову естественно можно только void* (никаких преобразование конечно внутри либы с этим указателем не делается).
Как сделать преобразование типов между std::list<std::shared_ptr<T>>::iterator и void*? или как то по другому это делается (не нагуглил)?


