Not the OP, however I have programmed in C++ since 1987 across many different operating systems and hardware platforms and I've literally never heard of a compiler that implements template stuff using runtime dispatch. CFront3 which was I think the first real template implementation that most people used certainly never did it that way, neither did any version of gcc, visual studio or Sun Workshop, which are the compliers I used the most from that period. Dug out my old copy of Coplien[1] which is from the early 90s and it discusses runtime dispatch in depth in the context of vtables and virtual function pointers and the cost of these things, so the concept was well understood but not a cost anyone was paying with templates.
[1] https://archive.org/details/advancedcbsprogr00copl "Advanced C++ Programming Styles and Idioms" aka the first programming book that genuinely kicked my ass when I first read it and made me realise how good it was possible to be at computer science.
Right. For starters, from the very beginning C++ has supported function templates which take native types. So you don't even necessarily have any kind of pointer you could add a vtable to even if you wanted to. Then add to that the guarantee[1] about pod types being directly compatible with C which as you say I don't see how it owuld be possible to do.
[1] which has always been strong even before there was an actual ISO/ANSI standard
templates don’t exist after the front end. there is no ABI that allows them to exist in any object file. there is no object file format they could be embedded in, sans a string representation of the source they came from.
I started with 300mg every night - 2 tablets from a brand called Swisse. I am now taking just 150mg a day since I think my body is back to normal. They also have powder type and i was also taking that at the beginning and your body absorb it really quick!
citrate was what I had/have (my wife usually buy it for me and I just looked at the label) and you just taught me a list of other options I never knew about! XD
Gmail sometimes lets through particularly obvious spam, of the kind that heuristics could definitely catch.
It's almost certainly a lack of will, or an insistence on filtering in a particular way. (Eg. considering themselves above heuristics, insisting a fancy AI must catch it)
To give you an example, one piece of spam that hit my Gmail inbox recently came from an address like: 6UGH578FDJ3@abusejan.beauty
On that email, Gmail shows a warning that the sender's domain didn't encrypt the message. The email is in a mixture of German & English. Most of the email is one big image. The unsubscribe link text is: "To be removed from our mailing list please?Click Here? Unsub-HERE"
> Gmail sometimes lets through particularly obvious spam, of the kind that heuristics could definitely catch.
I administer email for the company I work for. You might be surprised how often perfectly legitimate email looks a hell of a lot like spam.
- individuals who can't spell and write stream of consciousness near-nonsense
- companies forging the from: header with the target's own address
- companies sending mass mail with red flag keywords from rando cloud instances
- small companies using personal gmail accounts and including any kind of money-related term
...to name a few. Spam is a hard problem and marketers and scammers (same diff) are working hard every day to defeat any system you put in place to stop their bullshit.
I once ignored an email that was pretty obviously spam. It claimed to be from my bank, but had email links to another domain and not my bank, and a header looked like it was scanned from a piece of paper, badly, and was the only logo on the page.
Turned out to be completely legit. They really were trying to contact me to tell me they didn't get my proof of insurance.
When I told them my concerns, they didn't understand.
The thing is, as a user, I'm going to be very understanding if something that looks a lot like spam coming from an unrecognized address ends up in spam.
Rust can be cumbersome when you don't want to worry about structure and design beforehand, yes. But for writing reliable software, I think it's actually the other way around - I prefer having warnings about `unwrap()` over hunting down a missing null check or typo in a variable name.
FWIW, I happen to have the opposite opinion.
I find Rust easier to write than, say, Ruby or JS, because it is statically typed, has enums and great pattern matching, and traits are great.
Practical as there is already a lot of software written (or rewritten) to Rust. Sometimes for safety, sometimes - purely for performance. I don't claim it is an easy language or a universal solution.
Compare and contrast with pure languages that are less versatile. Sure, Haskell has its practical uses. From a popular example - Pandoc. Yet, I know many programmers who have been preaching it is the best language but could not write a performant program that solves a given task that does not focus on algorithmics.
By contrast, PHP or early JavaScript were not pure by any sane standard. Yet, they conquered the web. (Fortunately, ES6 and TypeScript made the JavaScript environment much saner.)
It has multiple safety-release-valves, programmable builds and full blown procedural macros. It's very practical. What it is is "unwieldy", as in, annoying to use.
Anyone with a education can write. Almost everything that is written is crap. There's no literature genius saying that normal people should not write or even should write with a rulebook aside.