Я новичок в C++ и читать код следующим образом:Какова цель reinterpret_cast
template<typename T>
std::istream & read(std::istream* stream, T& value){
return stream->read(reinterpret_cast<char*>(&value), sizeof(T));
}
и называют его:
size_t size;
read(&stream, size);
Может кто-нибудь объяснить, что цель reinterpret_cast используется здесь и что такое результат после вызова функции read?
UPDATE:
Возникает вопрос:
Если поток содержит строку например «тест», после чтения вызывается, тип-значение становится символ * и его содержание «тест»?
Google - ваш друг. Попробуйте 'reinterpret_cast C++' и посмотрите на второй и третий результаты. –
Этот фрагмент кода представляет собой попытку написать общую процедуру сериализации. Если это на самом деле то, что происходит, показанный подход является довольно наивным и опасным. –
@In silico Если поток содержит строку, например «test», после вызова read, тип значения становится char *, а его содержимое «test»? – Foredoomed