Tôi có chức năng mẫu sau được sử dụng để kết xuất dữ liệu của bất kỳ loại tiêu chuẩn nào thành luồng đầu ra nhị phân.diễn viên kiểu c vs reinterpret_cast
template<typename T> static void
dump (const T& v, ostream& o) {
o.write (reinterpret_cast<const char*>(&v), sizeof(T));
}
Thay vì reinterpret_cast Tôi cũng có thể sử dụng kiểu C (const char *). Có lý do cụ thể nào để sử dụng reinterpret_cast không? Tôi đọc một vài bài viết khác, nơi reinterpret_cast đã cau mày. Nhưng việc sử dụng ở trên là hợp pháp và không thể được thay thế bằng bất cứ điều gì khác, phải không?
Cảm ơn
Tôi cho rằng bạn biết hậu quả của việc đó (tệp kết quả chỉ có thể được đọc lại bởi chương trình được biên dịch với cùng các tùy chọn với cùng một trình biên dịch trên cùng một kiến trúc). – curiousguy
Ai đó sẽ đấm tôi để nói điều này, nhưng nếu bạn * muốn * sử dụng phôi kiểu C, bạn luôn có thể để lại nhận xét chung chung mà bạn không thể bỏ lỡ. Đã có * một số cách để tìm 'const' của bạn trong C, quá. ¯ | _ (ツ) _ | ¯ Tất nhiên bạn nên để ý đến những nguy hiểm. –