On 9/19/2016 1:32 PM, Rene Rivera wrote:
On Mon, Sep 19, 2016 at 7:18 AM, Edward Diener
wrote: I have pushed a fix for this on the 'develop' branch of iostreams. In the fix basically iostreams uses _FPOSOFF for versions of VC++ prior to VC++14 but uses '((long long)(fp))' for VC++14 on up.
That seems like a fragile fix to me. How do you know which version of VC is not going to have that def? Wouldn't it be better to use _FPOSOFF if it's defined, and the cast otherwise? That way whenever the macro goes away it will work, regardless of the specific version when that happens.
I understand what you are saying but _FPOSOFF is "undocumented" in the sense that it should not be relied on. Since I was told in this thread that for VC++14 on up Microsoft plans to "remove" it would it not simply be better not to rely on it for those releases of VC++ ? I could of course easily enough test for it and, if it exists, still use _FPOSOFF, which is what you are suggesting.