Path: csiph.com!eternal-september.org!feeder.eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail From: Keith Thompson Newsgroups: comp.lang.c++ Subject: Re: standard error messages in a std::string or in a const char * Date: Thu, 12 Sep 2019 14:41:22 -0700 Organization: None to speak of Lines: 30 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: reader02.eternal-september.org; posting-host="9405e1ef90ab11981d179ec051d04224"; logging-data="6567"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18yeSoAGqfFkW1ii1D6W/uH" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) Cancel-Lock: sha1:P0uoZU1X8+b/HpwS6GgCap/CCk4= sha1:RPY6TlrrWsLly7894u4Q1La74SU= Xref: csiph.com comp.lang.c++:68371 Thiago Adams writes: > On Thursday, September 12, 2019 at 8:08:46 AM UTC-3, Soviet_Mario wrote: > ... >> ahhhh ! Got it. Strangely I had included the (useless) >> but not completely consciously, and did not include > > C++ standard is creating differences from the same C header. > > For instance: > C++ defines a lot of POSIX error codes. > "E2BIG, EACCES, ..., EXDEV" > https://en.cppreference.com/w/cpp/error/errno_macros > > And C defines only EDOM, EILSEQ and ERANGE > https://en.cppreference.com/w/c/error/errno_macros The C standard only requires EDOM, EILSEQ, and ERANGE, but C implementations can, and commonly do, define additional macros. Both C and POSIX specifically permit additional E* macros to be defined. I don't see such a permission in the C++ standard, though I could be missing it. (I'm a little surprised C++ mandates the POSIX error codes, given that C++ can be implemented on non-POSIX systems.) -- Keith Thompson (The_Other_Keith) kst-u@mib.org Will write code for food. void Void(void) { Void(); } /* The recursive call of the void */