If you compile with -fno-exceptions you just lost almost all of the STL.
You can compile with exceptions enabled, use the STL, but strictly enforce no allocations after initialization. It depends on how strict is the spec you are trying to hit.
Not my experience. I work with a -fno-exceptions codebase. Still quite a lot of std left. (Exceptions come with a surprisingly hefty binary size cost.)
Not exactly sure what your experience is, but if you work with in an -fno-exceptions codebase then you know that STL containers are not usable in that regime (with the exception of std::tuple it seems, see freestanding comment below). I would argue that the majority of use cases of the STL is for its containers.
So, what exact parts of the STL do you use in your code base? Most be mostly compile time stuff (types, type trait, etc).
Apparently according to some ACCU and CPPCon talks by Khalil Estel this can be largely mitigated even in embedded lowering the size cost by orders of magnitude.
Yeah. I unfortunately moved to an APU where code size isn't an issue so I never got the chance to see how well that analysis translated to the work I do.
Provocative talk though, it upends one of the pillars of deeply embedded programming, at least from a size perspective.
Well, it's mostly type definitions and compiler stuff, like type_traits. Although I'm pleasantly surprised that std::tuple is fully supported. It looks like C++26 will bring in a lot more support for freestanding stuff.
No algorithms or containers, which to me is probably 90% of what is most heavily used of the STL.
When you go looking for a car will you buy the Peugeot 3008 because it has a higher number than the 208 ? Or will you do research, go to the company site and look at the product description, compare the specs and make your opinion about what best fits your needs ?
Right now there's about 5 lines of Surface devices with each their very specific purpose and tradeoffs. I'd be shocked at someone buying one solely based on the how the name sounds or what they assume it means without looking at the actual product pages.
> When you go looking for a car will you buy the Peugeot 3008 because it has a higher number than the 208 ? Or will you do research, go to the company site and look at the product description, compare the specs and make your opinion about what best fits your needs ?
You're comparing model to generation, not sure what's that supposed to mean.
Yes, I will buy Peugeot 208 over 207 because it is obviously newer. And the point isn't that I'm buying solely because of a number, the point is that it is much more intuitive to have simple naming over "jerk my co, pilot, ai".
> You're comparing model to generation, not sure what's that supposed to mean.
If you can accepts different schemes depending on the maker's intent, I really don't get why you're distressed by XBox naming different console lines with different monikers. I guess it all comes down to whether you like the name or not, and there was nothing to argue on from the very start.
> Yes, I will buy Peugeot 208 over 207 because it is obviously newer
Well, top performance electronics is usually going to be more expensive than the more nominal options.
And if there's not enough to go around to begin with, it might as well be a niche of some kind, you can't expect everyone to choose the most expensive option by any means.
Now if the user base is nowhere near the majority, and you're already in a high-dollar niche anyway because of the desired performance level, might as well escalate from the merely expensive, to the glaringly overpriced in addition. That's a well-worn playbook.
When the sweet spot is hit with loads of customers striving to afford the top-shelf items, while in actuality everyone is settling for a shadow of what should be offered by the biggest business machines companies, it's not the hardware that's the problem. Too few people are grumbling and accept they just have to make do with what they have.
Most buyers do not use consumer electronics as money-making machines, the genres and cost-structures have undergone generations of evolution to be optimized for consumption of the electronics, as actually opposed to the business machines they once were.
If you want to use yours as a money-making machine, it will probably pay for itself even if the purchase price is a small multiple of the popular budget consumer version. But way more money is being put into making it difficult to tell the difference, more money than most small companies are even worth.
>supported by a company that is user aligned.
Interestingly, you can't buy that with money, even from the most financially-oriented of companies.
The MacBook currently has two models, each available in two sizes, each size has three to six default configurations. There are dozens of MacBooks before you even get into the customization options.
> The case against complex UI hides the fact that nobody wants to take their time to learn a piece of software anymore. Attention spans are so short, if the system doesn't do all the thinking for you, why bother with it? We are just moving the human laziness through another layer of indirection. The fact never changed in the past 30 years: some domains are complicated and you need smart people on both ends who can bridge the gaps. The dream has always been the same with nocode, lowcode and whatever, it doesn't change this fundamental flaw.
This has nothing to do with laziness or attention span. 20 years ago you'd have maybe a dozen programs tops to juggle and they were much better designed, because they were made by people who actually use the software instead of some bored designer at FAANG sweatshop who operates on metrics. Now you have 3-5 chat clients, 20 different web UIs for everything on 3 different OSs, all with different shortcuts. And on top of that it CONSTANTLY changes (looking at you Android and material 3).
5 things deserve knowing in-depth: browser (not a specific website, but browser itself), text editor, Spreadsheet application, terminal and whatever else software you use to put a bread on your table.
For any VCs that seriously think I'll invest non-trivial amount of time into learning their unique™ software – you're delusional. Provide shortcuts that resemble browser/vim/emacs/vscode and don't waste yours and my time.
reply