Я ищу решение -std = gnu ++ 17 (или 20, если оно уже доступно) для работы с объектами и mallo c. там я хочу иметь функцию шаблона для распределения памяти c с помощью mallo c и создания объекта. сам объект может быть чем угодно, поэтому ему может понадобиться 10 аргументов в конструкторе или их нет. как я могу поддержать функцию шаблона? идея должна быть аналогична списку аргументов переменных printfs, но здесь не аргументы для печати, а переменные для вызова конструктора.
В новых стандартах c ++ много чего происходит, но это также довольно запутанно, если вы к этому не привыкли. кто-то действительно в курсе этих функций C ++ и может помочь?
В ЭТОМ ОБСУЖДЕНИИ НЕ СЛЕДУЕТ ВКЛЮЧАТЬ «КАК РАСПРЕДЕЛИТЬ ОБЪЕКТЫ ПАМЯТИ И СТРОИТЕЛЬСТВА». КОДИРОВАНИЕ ШАБЛОНА ИНТЕРЕСНО
template<typename T, typename... args>
T * malloc_and_construct()
{
T* pobj = (T*)malloc(sizeof(T));
if(pobj) new (pobj) T(args...);
return pobj;
}
template<typename T>
void destruct_and_free(T* pobj)
{
if(pobj) {
pobj->~T();
free(pobj);
}
}