5 ms·
Why uint8_t b = 0b1111'1111; I would rather have uint8_t b = 0b1111_1111; This ' thing is hard to get right on some non-us keyboards. And yes, I've
by kramerger 3y ago
Why
uint8_t b = 0b1111'1111;
I would rather have
uint8_t b = 0b1111_1111;
This ' thing is hard to get right on some non-us keyboards. And yes, I've the same problem with Rust.
- dxuh 3y agoI think you can't do that, because the underscore may start a user defined literal suffix.
- WalterBright 3y agoD 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); }
- cmovq 3y agoIt 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]. [1] https://en.cppreference.com/w/cpp/language/user_literal https://en.cppreference.com/w/cpp/language/user_literal [2] https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3499.html https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n34...
- raxxorraxor 3y agoDidn't know about this language feature. Seems neat. The ASM integration is also neat. If you compare that to C... Still, I have rarely seen C++ compilers for embedded systems. Although the latter definition more and more includes PC hardware.
- Denvercoder9 3y ago> Still, I have rarely seen C++ compilers for embedded systems. What kind of embedded systems? Even AVR has a C++ compiler.
- raxxorraxor 3y agoYeah, 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.
- mvladic 3y agoStill, C++ is very useful on embedded systems. This article is just about that.
- inferiorhuman 3y agoThese are all valid Rust: 0b1111_1111 0b11111111u8 0b1111_1111_u8 0b11_11_11_11_u8 https://doc.rust-lang.org/book/ch03-02-data-types.html https://doc.rust-lang.org/book/ch03-02-data-types.html
- connicpu 3y agoTheir problem with rust is probably more all the single quotes you need for lifetimes
- 3836293648 3y agoAre 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
- WalterBright 3y ago> I would rather have > uint8_t b = 0b1111_1111; In D, you would have: ubyte b = 0b1111_1111;