32 lines
770 B
Plaintext
32 lines
770 B
Plaintext
|
#pragma once
|
||
|
|
||
|
#include <stdlib.h>
|
||
|
|
||
|
#if __cplusplus >= 201703L
|
||
|
extern int abs (int __x) throw() __attribute__ ((__const__)) ;
|
||
|
extern long int labs (long int __x) throw() __attribute__ ((__const__)) ;
|
||
|
extern float fabs (float __x) throw() __attribute__ ((__const__)) ;
|
||
|
#else
|
||
|
extern int abs (int __x) __attribute__ ((__const__)) ;
|
||
|
extern long int labs (long int __x) __attribute__ ((__const__)) ;
|
||
|
extern float fabs (float __x) __attribute__ ((__const__)) ;
|
||
|
#endif
|
||
|
|
||
|
namespace std
|
||
|
{
|
||
|
|
||
|
using ::abs;
|
||
|
|
||
|
inline long
|
||
|
abs(long __i) { return __builtin_labs(__i); }
|
||
|
|
||
|
inline long long
|
||
|
abs(long long __x) { return __builtin_llabs (__x); }
|
||
|
|
||
|
float fabs(float __x) { return __builtin_fabs(__x); }
|
||
|
|
||
|
float abs(float __x) { return fabs(__x); }
|
||
|
double abs(double __x) { return fabs(__x); }
|
||
|
|
||
|
}
|