It could be misinterpreted as a user literal [1], for example with 0xAAAA_BBBB it is unclear whether _BBBB is a user literal. The original proposal discusses some of the alternatives [2].
Yeah, that was wrong. I meant there are very few serious projects implemented in C++ for µC that are restricted memory wise.
Yes, AVR has a C++ compiler, but I could imagine it doesn't support all language features. If it does it would still be discouraged to use dynamic memory allocation, which is pretty essential to leverage many advantages of object orientated languages.
Of course embedded systems aren't restricted to that anymore and you are perfectly fine to use C++ for the average ARM system that isn't as restricted memory wise.
D doesn't have a special syntax for user-defined literals, which avoids this problem completely. One can use templates for user-defined literals, such as:
km!1000
for 1000 kilometers. Here, km is a template that takes an integer argument:
struct Kilometer { int v; }
template km(int V) { Kilometer km = Kilometer(V); }
Are you sure? ' easily accessible on every layout I've looked it. ´ and ` are usually a pain though. There's probably some layout where it's a pain, but it can't be that many.
But oh how I hate `. I had to edit my layout to make it typable for stupid haskell infix functions
[1] https://en.cppreference.com/w/cpp/language/user_literal
[2] https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n34...