Cargar archivo binario usando fstream

Estoy tratando de cargar un archivo binario usandofstream de la siguiente manera:

#include <iostream>
#include <fstream>
#include <iterator>
#include <vector>

using namespace std;

int main()
{
    basic_fstream<uint32_t> file( "somefile.dat", ios::in|ios::binary );

    vector<uint32_t> buffer;
    buffer.assign( istream_iterator<uint32_t, uint32_t>( file ), istream_iterator<uint32_t, uint32_t>() );

    cout << buffer.size() << endl;

    return 0;
}

Pero no funciona. En Ubuntu se estrelló constd::bad_cast excepción. En MSVC ++ 2008 solo imprime 0.

Sé que podría usarfile.read para cargar el archivo, pero quiero usar iterador yoperator>> para cargar partes del archivo. ¿Es eso posible?Por qué el código de arriba no funciona?

Respuestas a la pregunta(4)

Su respuesta a la pregunta