Emlékeztek még, amikor egy file nem lehetett nagyobb, mint 2 GB? Nem, nem a FAT32-re gondolok. Hanem a páréves forditókra, amikben a streamoff típus 32 bites előjeles szám volt. Ezáltal az STL képtelen volt kezelni 2 GB-nál nagyobb file-okat. Pedig ekkora file-ok ma már teljesen természetesek.
GCC-ben ez az időszak állítólag a 3.3-as verzióig tartott, de nekem még tavaly is volt bajom vele. Persze, lehet, hogy éppen egy 3.3-assal. Mindenesetre a 4.4.2-esben leteszteltem, és az már egészen biztosan 64 bites streamoffot használ. Visual Studioban az első verzió, amelyikben lecserélték 64 bitesre, az a 10-es. (64 bites platformon már 64 bites a streamoff egy ideje, de asszem a 32 bites kódok kicsit még gyakoribbak.) Sajnos ez még béta 2-es fázisban van, csak jövőre jön ki. Így az MSVC felhasználók még szívhatnak vele egy ideig.