Hacker News new | comments | show | ask | jobs | submit login
C++17 Features and STL Fixes in VS 2017 15.3 (microsoft.com)
63 points by ibobev 11 months ago | hide | past | web | favorite | 20 comments

I've spent the last few months working on this release (alongside Billy, Casey, and Steve). When I started maintaining the STL in 2007, we released new features every couple of years - releasing every few months is much nicer (although I occasionally miss being able to break bincompat).

As I alluded to in this post, we're testing our STL with Clang (currently Clang/LLVM 4.0, soon to be 5.0 when I figure out how to get it to find my link.exe), and with libc++'s test suite. This has improved both our STL and Clang/libc++ upstream, and I'm grateful to their devs for working with us.

I'm glad that std::future invalidates on get() now. That really caught me off guard when I first used the thing.

I think this is the first time I've ever seen C++ hit the top of HN. Either nothing interesting has happened in the last 48 hours, or there's more interest in it here than I would have thought.

I'm also really hoping someone hasn't commented about Rust since I've been writing this...

C++ topics are quite frequent on the front page. Maybe not in comparison to rust but C++ is in active development with a lot of useful additions.

> The meow_n() algorithms

What's that?

For some reason, c++ folks seem to sometimes use "meow" as a placeholder. I thus guess that it means "all the something_n functions in <algorithm>", like http://www.cplusplus.com/reference/algorithm/fill_n/ ?

STL (Stephan T. Lavavej, that is, not the library) just happens to like kittens.

Yes. Why say "unordered_map, unordered_multimap, unordered_set, unordered_multiset" or the boring "unordered_foo" when I can say "unordered_meow", and so forth?

What do you use when you need more than one metasyntactic variable?

Purr! Hiss!

Hopefully this fixes Ceres Solver as well, there has been a crash in VS2017 which is a blocker for us to upgrade.

Did you report the problem? It's too late for us to do anything about it in 15.3, but if something's still broken we can investigate it for 15.x.

We test our development builds against a large and growing number of open-source projects, but I don't think Ceres Solver is in our test matrix yet (I could be wrong).

I found a report someone else had already made. And apparently it has been fixed with this release! Thanks!

Glad to hear it!

Still, no C11. Subset of C++ my ass.

As the post mentioned, we support almost all of the parts of the C11 Standard Library that are required by C++17. We also implemented a number of C99 Core Language features in previous releases. It is true that we don't support the entirety of the C11 Core Language, though. What missing features are you particularly interested in?

Particularly, C11 threads. That's about everything for, at least, me.

I know, windows.h has something similar, but I'd prefer to have standard features available.

(Chances are that those are about to be added anyway which would make me look dumb. But last time I checked, the VS team said they wouldn't do that.)

Wouldn't a subset describe that?

Yes, that's why the assumption that it would be a subset is not quite true.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact