История изменений
Исправление pathfinder, (текущая версия) :
Не надо экономить на спичках. Если нужен буфер, используй std::vector<char>. Пускай инициализируется.
Такой код должен быть понятен всем.
Если бы API можно было изменить и если бы заполняемый буфер представлял собой линейных массив объектов одного типа, то проще было бы использовать функцию std::vector<T>::emplace_back() внутри функции getData() и передавать в функцию vector<T>, а не void*.
Исправление pathfinder, :
Не надо экономить на спичках. Если нужен буфер, используй std::vector<char> v. Пускай инициализируется.
Такой код должен быть понятен всем.
Если бы API можно было изменить и если бы заполняемый буфер представлял собой линейных массив объектов одного типа, то проще было бы использовать функцию std::vector<T>::emplace_back() внутри функции getData() и передавать в функцию vector<T>, а не void*.
Исходная версия pathfinder, :
Не надо экономить на спичках. Если нужен буфер, используй std::vector<char> v. Пускай инициализируется. Функцию вызывай так: getData(v.data()).
Такой код должен быть понятен всем.
Если бы API можно было изменить и если бы заполняемый буфер представлял собой линейных массив объектов одного типа, то проще было бы использовать функцию std::vector<T>::emplace_back() внутри функции getData() и передавать в функцию vector<T>, а не void*.