[jira] Commented: (STDCXX-195) [Linux] error on std::putc()
[ https://issues.apache.org/jira/browse/STDCXX-195?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12555762#action_12555762 ] Martin Sebor commented on STDCXX-195: - Same problem with getc(): $ cat t.cpp make t #include cstdio int main() { std::putc ('x', stdout); std::getc (stdin); } gcc -c -I/home/sebor/stdcxx/include/ansi -D_RWSTDDEBUG -pthread -I/home/sebor/stdcxx/include -I/build/sebor/stdcxx-gcc-4.1.2-15D/include -I/home/sebor/stdcxx/examples/include -pedantic -nostdinc++ -g -W -Wall -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long -Wcast-align t.cpp t.cpp: In function 'int main()': t.cpp:5: error: '_IO_putc' is not a member of 'std' t.cpp:6: error: '_IO_getc' is not a member of 'std' make: *** [t.o] Error 1 [Linux] error on std::putc() Key: STDCXX-195 URL: https://issues.apache.org/jira/browse/STDCXX-195 Project: C++ Standard Library Issue Type: Bug Components: 27. Input/Output Affects Versions: 4.1.3 Environment: SuSE SLES 9sp2 (ppc64), IBM XL C/C++ Advanced Edition V8.0 for Linux Version: 08.00.. Reporter: Scott (Yu) Zhong Assignee: Martin Sebor Fix For: 4.2.1 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. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (STDCXX-195) [Linux] error on std::putc()
[ 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.. 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