[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#105285: libstdc++-2.10: <cmath> doesn't define trunc(...)



Package: libstdc++2.10
Version: 1:2.95.2-14
Severity: important

The attached C++ program doesn't build with g++-2.95.  According to
the documentation it should, and under g++-3.0 it does build (using
libstdc++-3) And it of course builds with gcc-2.95 (if I do a C
version)

Well I can use <cmath> if I
#define _ISOC99_SOURCE
which is rather pointless, since I'm talking about c++ here. Is there
something wrong with __STDC_VERSION__ in g++-2.95?

The following portion of /usr/include/features.h seems to be where
this include fails.

-------------------------
/* This is to enable the ISO C99 extension.  Also recognize the old
macro
   which was used prior to the standard acceptance.  This macro will
   eventually go away and the features enabled by default once the ISO
C99
   standard is widely adopted.  */
#if (defined _ISOC99_SOURCE || defined _ISOC9X_SOURCE \
     || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L))
# define __USE_ISOC99   1
#endif
---------------------------

This should be fixable within this package.

#include definitely fails with g++-2.95

orion:libstdc++$ g++ trunc.cxx
trunc.cxx: In function `int main()':
trunc.cxx:6: implicit declaration of function `int trunc(...)'
orion:libstdc++$

Thanks,

-- System Information
Debian Release: testing/unstable
Architecture: i386
Kernel: Linux orion 2.4.3 #2 Thu May 24 21:48:24 EEST 2001 i686
Locale: LANG=C, LC_CTYPE=C

Versions of packages libstdc++2.10 depends on:
ii libc6 2.2.3-6 GNU C Library: Shared libraries

-- 
Eray Ozkural (exa) <erayo@cs.bilkent.edu.tr>
Comp. Sci. Dept., Bilkent University, Ankara
www: http://www.cs.bilkent.edu.tr/~erayo
GPG public key fingerprint: 360C 852F 88B0 A745 F31B  EA0F 7C07 AE16 874D 539C
#include <cmath>
#include <iostream>

int main() {

   float a = trunc(3.5);
   std::cout << a << std::endl;

   return 0;
}

Reply to: