Andrey_Kireew, посмотрите стандарт. Там прописано, как ведут себя в таких ситуациях встроенные типы (а определенные пользователем всё равно могут работать как угодно).
При работе с C или C++ нужно помнить, что бывают 4 уровня определенности: standard defined (в стандарте четко прописано, что происходит), implementation defined (в описании компилятора должно быть четко прописано, что происходит), unspecified (код может делать разное в зависимости от погоды на Марсе) и undefined (код может делать что угодно - например,
в соответствии со стандартом имеет полное право отформатировать диск). И понять, гарантируется ли данное поведение, или просто звезды сошлись, можно единственным способом - посмотреть, что про него написано в стандарте.
(или, очевидно, спросить у тех, кто знает, что написано в стандарте - но лучше уметь читать его самостоятельно; он не страшный и почти не кусается)
(занудство про перегрузку)
Потому если есть сомнения - проверьте, сохраните предварительно переменную fPoz куда-то ещё и сравните её значение до и после.
Вообще говоря, сохранение и/или проверка равенства тоже могут быть устроены странно - так что значение изменится, но совпадет с сохраненным.