Peter Kümmel wrote:
> Jean-Marc Lasgouttes wrote:
>> But are we sure that int is a wide enough type?
>
> there is no abs function for 64 bit ints,
> so we must define it:
>
> Index: changes.C
> ===================================================================
> --- changes.C (revision 15576)
> +++ changes.C (working copy)
> @@ -18,6 +18,15 @@
>
> #include <boost/assert.hpp>
>
> +#ifdef _MSC_VER
> +namespace std
> +{
> + inline __int64 abs(__int64 i)
> + {
> + return _abs64(i);
> + }
> +}
> +#endif
>
A other -but more ugly- solution is (at least in this file)
#ifdef _MSC_VER
#define abs _abs64
namespace std
{
using ::abs;
}
#endif
because there is
1. no 64bit abs, so use always the 64bit version
2. abs is not a function of std
Peter