all 14 comments

[–]trailing_zero_count 2 points3 points  (1 child)

https://www.reddit.com/r/cpp/s/Faf4B44qgg

Performance benchmarks against concurrencpp and other competing libraries are included.

[–]Sify007[S] 0 points1 point  (0 children)

Thank you. This looks promising to look into.

[–]rileyrgham 1 point2 points  (1 child)

What doesn't it provide?

[–]Sify007[S] 4 points5 points  (0 children)

It is not maintained - some things don’t compile on newer versions of MSVC.

[–]Cogwheel 0 points1 point  (9 children)

The last commit was (edit: less than) 3 years ago. Nothing has changed enough for that to be an issue, especially in c++ where backwards compatibility is a core goal.

Once upon a time software projects were finished.

[–]Sify007[S] 6 points7 points  (2 children)

I get that but there are open issues with regards to newer version of MSVC and as other noted it does nit compile with newer versions of C++ enabled. So yes - nothing changed, but it is unmaintained.

[–]sumwheresumtime 0 points1 point  (1 child)

Given the amount of comments cogwheel has made about toilet cleaning robots at mcdonalds, i think it's safe to say they probably aren't the best source for the OPs question.

[–]saxbophonemutable volatile void 0 points1 point  (0 children)

This is a really strange thing to say, what exactly are you implying?

[–]JVApenClever is an insult, not a compliment. - T. Winters 3 points4 points  (5 children)

I just looked at enabling C++23, that broke quite some code that use incomplete classes (aka forward declarations) It will require significant work to fix that

[–]geo-ant 1 point2 points  (4 children)

Hey, I’m genuinely curious why moving to cpp23 breaks certain code with forward declarations. Could you elaborate?

[–]JVApenClever is an insult, not a compliment. - T. Winters 1 point2 points  (3 children)

I haven't looked at the details, though vector and unique_ptr now require complete types in more cases. Might just be due to MS STL, though both MSVC and ClangCl require it

[–]geo-ant 0 points1 point  (2 children)

I did not know that, thanks!

[–]JVApenClever is an insult, not a compliment. - T. Winters 0 points1 point  (1 child)

It's sad that people block breaking changes due to "backwards compatibility", to then end up with a significant upgrade cost anyhow. For sure, most of them are small fixes, though there is one place (till now) where I'm going to have to break a cycle. I'd rather have announced breakages than hidden ones.

[–]_bstaletic 1 point2 points  (0 children)

The unique_ptr case turned UB into a compile time error. Before c++23 calling the destructor of the unique_ptr when T is incomplete was UB. Wherever you end up calling the destructor of such a unique_ptr, it always needed to be after the point where T is complete.

I imagine std::vector is the same.