Здравствуйте.
Подскажите пожалуйста. Надо скопировать из массива заданного указателем на 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);