screver e ler em C ++ dobra de um arquivo binár

Quero executar operações de E / S de disco para um programa que consome muita RAM. Uso matrizes de dobros e acho que gravá-las em disco como bytes é a maneira mais rápida (preciso preservar a precisão dupla

Como fazer isso com portabilidade?

Encontrei este código aqu) mas o autor diz que não é portátil ...

#include <iostream>
#include <fstream>

int main()
{
    using namespace std;

    ofstream ofs( "atest.txt", ios::binary );

    if ( ofs ) {
        double pi = 3.14;

        ofs.write( reinterpret_cast<char*>( &pi ), sizeof pi );
        // Close the file to unlock it
        ofs.close();

        // Use a new object so we don't have to worry
        // about error states in the old object
        ifstream ifs( "atest.txt", ios::binary );
        double read;

        if ( ifs ) {
            ifs.read( reinterpret_cast<char*>( &read ), sizeof read );
            cout << read << '\n';
        }
    }

    return 0;
}

questionAnswers(4)

yourAnswerToTheQuestion