For the moment (as in “what is going to ship with VS “15””) we have done this: // TRANSITION: Boost nonconformingly uses this macro #define _FPOSOFF(fp) ((long long)(fp)) Because even if Boost fixes this immediately we don’t want break all the existing Boost instances out there. Will nuke outright next time we break bincompat; sometime after VS “15”. Billy3 From: Edward Dienermailto:eldiener@tropicsoft.com Sent: Monday, September 19, 2016 2:27 PM To: boost@lists.boost.orgmailto:boost@lists.boost.org Subject: Re: [boost] Boost should not be saying "_FPOSOFF" 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. _______________________________________________ Unsubscribe & other changes: https://na01.safelinks.protection.outlook.com/?url=http%3a%2f%2flists.boost.org%2fmailman%2flistinfo.cgi%2fboost&data=02%7c01%7cbion%40microsoft.com%7c459d3f195ad04362b8eb08d3e0d3c071%7c72f988bf86f141af91ab2d7cd011db47%7c1%7c0%7c636099172473744664&sdata=im4hQFduonfHAXuSyjiO1J9yTIBEx1T%2fOS5UpasByNo%3d