C++ pitfalls hard to avoid that are elegantly managed in Rust

Just took a look at the link you provided.
That is an unsettlingly long list of soundness holes for any language, and even more so for a safe language...

AFAIK most of them are in the nightly-only code, so stable is much more sound then it might seem.

1 Like

It would be nice to be able to split those issues up between at least stable and nightly.

Also pretty much all of them are corner cases, so you aren't likely to run into them unless you are doing something really weird. Also, there's a separate tag for requires nightly (@Cerberuser only 8 require nightly right now according to this tag)

1 Like

Lately my code has a bit of a habit of running into corner cases. I've hit corner cases on at least 3 occasions:

  1. With proc_macros generating other macros and have them be usable (now stable I believe, but it wasn't when I tried it)
  2. With proc_macros expanding to exprs (can't do it yet, but it's coming),
  3. With Box<T> being #[fundamental] which means I couldn't write some impl blocks I needed.

So corner cases are still important as far as I'm concerned.

1 Like

You can use proc_macro_hack to get this working.

1 Like

I'm aware of that crate, but at this point I'd rather wait for proc_macros in expr position to become stable. No point in doing work you know you'll have to redo in a couple of weeks time if you can avoid it.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.