Я пытаюсь сделать что-то похожее на следующий блок кода:
tf::transform t;
initializeTransform(t);
std::ofstream f;
f.open("somefile");
f << t << std::endl;
f.close();
Предполагая, что я правильно настроил это f
а также t
когда я пытаюсь написать t
в f
Как бы я это сделал? Я попробовал несколько вариантов этого, и все они приводят к огромной стене текста, что ofstream
не знает, как обрабатывать объект tf :: transform, что неудивительно.
Есть ли способ сделать ofstream
взять произвольные предметы? Есть ли какой-нибудь формат, который я мог бы легко преобразовать в более удобный для потоковой передачи? В идеале, если я конвертирую это, я хотел бы иметь способ обратимо конвертировать это в некоторую матрицу, которую я могу передать прямо в файл и из файла.
Реализовать оператора
Я не уверен в содержании структуры преобразования в этом случае, но предполагая, что это:
struct transform { float mat[16]; }
Тогда реализация может быть что-то вроде:
std::ostream& operator<< (std::ostream& os, const tf::transform& t)
{
os << t.mat[0];
for(int i=1;i<16;++i) os << ',' << t.mat[i];
return os;
}
Других решений пока нет …