В чём разница между следующими записями? Как правильно записать вектор в бинарный файл?
file.write(reinterpret_cast<const char*>(vec.data()), vec.size() * sizeof(T));
или так
file.write(reinterpret_cast<char*>(vec.data()), vec.size() * sizeof(T));
ofstream::write принимает const char *, зачем может понадобится намеренно передавать туда именно char *, тем самым делая невозможными запись из вектора с const квалификатором.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей