Buscando en archivos grandes con ifstream

Estoy implementando un programa en C ++ usando ifstream que debe buscar en archivos grandes (~ 1TB). Sin embargo, esto falla después de leer 2GB. ¿Hay alguna forma de obtener posiciones de archivo, incluso para archivos grandes? Yo compilo para una máquina de Windows de 32 bits.

std::ifstream f;
f.open( filename.c_str(), std::ifstream::in | std::ifstream::binary );
while(true) {
    std::cout << (uint64_t)(f.tellg()) << std::endl;
    //read data
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta