[sword-devel] [PATCH] Use C++ 11 <cstdint> instead of __{s, u}* typedefs

Jaak Ristioja jaak at ristioja.ee
Sat Jun 20 13:15:27 EDT 2020


On 20.06.20 19:56, Adrian Bunk wrote:
> Names like __u32 do not pollute the POSIX namespace,
> but the Linux kernel uses exactly the same names.
> 
> On some Linux architectures the kernel definitions are different,
> e.g. http://tracker.crosswire.org/browse/API-178

Additionally, according to the C++ draft standard working draft,
https://eel.is/c++draft/lex.name#3:

> 3 In addition, some identifiers are reserved for use by
> C++ implementations and shall not be used otherwise; no
> diagnostic is required.
> (3.1) Each identifier that contains a double underscore
> __ or begins with an underscore followed by an uppercase
> letter is reserved to the implementation for any use.
> (3.2) Each identifier that begins with an underscore is
> reserved to the implementation for use as a name in the
> global namespace.

> All relevant compilers should now support C++ 11,
> but please double-check that this change works on
> all non-gcc compilers you support.

See also these threads for previous discussions on the issue:

https://www.crosswire.org/pipermail/sword-devel/2014-May/041401.html
https://www.crosswire.org/pipermail/sword-devel/2019-July/047252.html

J


More information about the sword-devel mailing list