http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54130
--- Comment #3 from joseph at codesourcery dot com <joseph at codesourcery dot com> 2012-07-31 14:43:18 UTC --- In C it's a macro not a function and there is no guarantee that there exists a function with that name, or what the semantics of such a function would be. In C++, unlike C, I think you are required to include the standard headers to get any standard library facilities. (For C, you can use functions, not macros, without including headers if the functions' prototypes do not involve any type defined in a standard header, only built-in C types.)