This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: abs function question


Steve Ellcey <sje@cup.hp.com> writes:

| I am currently running into a problem with the function abs and the
| header std_cstdlib.h.  This file contains the lines:
| 
|    namespace std
|    {
| 	using ::abs
|    }
| 
| The problem is that my system's stdlib.h header file is smart enough to
| not do an extern declaration for abs if it is in C++ mode and instead
| does an inline declaration of the abs function.  It only does an extern
| declaration if it is in C mode.  Thus I get an error on the 'using ::abs'
| line.

Huh!?  How can an inline definition could possibly clash with a using
declaration?  Some piece of information is missing.  Could tell us
more about that inline declaration?

| I could handle this with fixheaders but I was wondering if there
| is any reason one couldn't replace
| 
| 	using ::abs
| with
| 	inline int abs(int __i) { return __i >= 0 ? __i : -__i; }

The archive should have record of past discussions on the subject.  A
basic invariant is that we shall have &::abs == &std::abs.

-- Gaby


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]