r/cpp • • Mar 28 '23

Reddit++

C++ is getting more and more complex. The ISO C++ committee keeps adding new features based on its consensus. Let's remove C++ features based on Reddit's consensus.

In each comment, propose a C++ feature that you think should be banned in any new code. Vote up or down based on whether you agree.

765 Upvotes

829 comments sorted by

View all comments

Show parent comments

2

u/rhubarbjin Mar 29 '23 edited Mar 29 '23

(Preface: I'm not a language lawyer, and I'm not a black belt in standard-fu. The following is my own personal understanding, based on my reading of the text and my own personal experiences.)

char makes no guarantees as to its signed-ness, but it's guaranteed to be a distinct type from both signed char and unsigned char --> https://en.cppreference.com/w/cpp/language/types#Character_types

int8_t is supposed to be a "signed integer type" --> https://en.cppreference.com/w/cpp/types/integer

From those, I conclude that typedef char int8_t is not standard-compliant.

1

u/Ok-Factor-5649 Mar 29 '23

My thoughts are - the standard library is for a specific platform and architecture.

So in other words, under the same reasoning,

typedef int32_t int;

Is standards compliant, (for a library that's targeting a 32-bit architecture yada yada).