[ 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
