To conclude this our verdict is to always use the modern headers?

On Wed, Apr 14, 2021 at 3:13 PM Ahmad Samir <a.samir...@gmail.com> wrote:
>
> Hello :)
>
> A week or so ago I created an MR to include <cerrno> instead of <errno.h> in 
> KIO[1].
>
>  From /usr/include/c++/10/cerrno:
> /** @file cerrno
>   *  This is a Standard C++ Library file.  You should @c \#include this file
>   *  in your programs, rather than any of the @a *.h implementation files.
>   *
>   *  This is the C++ version of the Standard C Library header @c errno.h,
>   *  and its contents are (mostly) the same as that header, but are all
>   *  contained in the namespace @c std (except for names which are defined
>   *  as macros in C).
>   */
>
>
> And then I made similar commits to a lot of the other Frameworks (not all, 
> since the build failed
> for some of them, so I left them alone).
>
> Harald Sitter asked me to raise the point here, basically he's wondering 
> whether this change might
> cause issues, not being 100% POSIX compliant...etc; I'll quote him because he 
> explained it much
> better than I would:
>
> <sitter> ahmadsamir:
> https://invent.kde.org/frameworks/kcrash/-/commit/7a20755723dc1527edb7ed5c3fdcccdbcf7fa768
>  was this
> ever discussed anywhere? cause there are others like this and my thinking up 
> until now was that
> using the C .h is more appropriate since we use them for POSIX APIs and from 
> that POV the POSIX
> specified header is errno.h
>
> [...]
>
> <sitter> might be worth raising for discussion on the mailing list. with 
> c++>=14 there's a whole
> mountain of "deprecated" headers OTOH I also recall reading that the c++ 
> standard doesn't guarantee
> compatibility
> <sitter> which may or may not be a concern when we use stuff specifically 
> with the expectation that
> they will behave as documented from a POSIX or linux POV (such as signal 
> safety in kcrash)
>
>
> [1] https://invent.kde.org/frameworks/kio/-/merge_requests/397
> --
> Ahmad Samir

Reply via email to