stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Sebor (JIRA)" <j...@apache.org>
Subject [jira] Commented: (STDCXX-195) [Linux] error on std::putc()
Date Mon, 05 Jun 2006 19:53:31 GMT
    [ http://issues.apache.org/jira/browse/STDCXX-195?page=comments#action_12414838 ] 

Martin Sebor commented on STDCXX-195:
-------------------------------------

The problem here is that putc is #defined as a macro by the C library. This is explicitly
disallowed by lib.headers, p6 (clarified by Footnote 166):

  -6- Names that are defined as functions in C shall be defined as functions in the C++ Standard
Library.166)
  ___________
  Footnote 166) This disallows the practice, allowed in C, of providing a "masking macro"
in addition to the function prototype. The only way to achieve equivalent "inline" behavior
in C++ is to provide a definition as an extern inline function.

> [Linux] error on std::putc()
> ----------------------------
>
>          Key: STDCXX-195
>          URL: http://issues.apache.org/jira/browse/STDCXX-195
>      Project: C++ Standard Library
>         Type: Bug

>   Components: 27. Input/Output
>     Versions: 4.1.3
>  Environment: SuSE SLES 9sp2 (ppc64), IBM XL C/C++ Advanced Edition V8.0 for Linux  

> Version: 08.00.0000.0000
>     Reporter: Scott (Yu) Zhong
>     Assignee: Martin Sebor

>
> IBM VAC++ 8.0 linux uses _IO_putc instead of putc
> file affected:
> include/ansi/cstdio
> ------- testcase.cpp --------
> #include <cstdio>
> int main()
> {
> 	std::putc ("test", stdout);
>         std::fflush (stdout);
> }
> ---------- compile line ----------------
> xlc -F /package/1/ppc64/compilers/ibm/va80/vac.cfg -q64 -qarch=ppc64 -D_RWSTD_NO_IMPLICIT_INCLUSION
-qnolib -Wl,-dynamic-linker -Wl,/lib64/ld64.so.1  -D_RWCONFIG=stdlib_rs -I../../include -I./../../../../include
-I./../../../../include/ansi -I./../../../.. -I.. -I. -g -c ../testcase.cpp
> ---------- output ----------------------
> "../testcase.cpp", line 5.9: 1540-0130 (S) "std::_IO_putc" is not declared.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message