Копировать массивы разных типов
От: Sergey_BG Россия  
Дата: 04.01.20 12:57
Оценка:
Здравствуйте.

Подскажите пожалуйста. Надо скопировать из массива заданного указателем на double данные в массив фиксированной длины float.

Я пытаюсь использовать stl std::copy. Но появляются предупреждения. Достаточно массивные. И они практически полностью заполняют лог. Вдобавок нет никаких проверок длины массива и т.п.

Используя VS2013 и ранее я использовал специальные классы для проверки длины. Правда оставались предупреждения о приведении типа. Но VS2015 на этом поставила крест.

Искал в инете, перечитал MSDN но пока ответа не нашёл.

Как сейчас принято копировать массивы разного типа заданные указателем на первый элемент?

double *P0 = …;
float vector[14] = {0};
//auto itBegin = stdext::make_checked_array_iterator((double*)P0, 3);
//auto itEnd = stdext::make_checked_array_iterator((double*)P0, 3, 3);
//auto itOut = stdext::make_checked_array_iterator(vector, _countof(vector), 4);
std::copy(P0, P0 + 3, vector + 4);    // std::copy(stdext::checked_array_iterator<double*>(P0, 3), stdext::checked_array_iterator<double*>(P0, 3)+3, vector + 4);
Сергей
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.