GoingNative 47: MSVC++ is* C++17 standard library feature complete!

Play GoingNative 47: MSVC++ is* C++17 standard library feature complete!
Sign in to queue


*as of this video's release date =P

Join us (including our new libs PM, Eric Mittelette) as we get an in-depth look at what cool new C++17 features are available for you in yet another round of STL updates! [pun intended]

[00:25] Interviewees' Intro
[01:28] Major Milestone!
    [02:15] The * next to the word "is"

STL breakdown ("in order of increasing complexity")
[03:19] as_const()
[04:31] std::<chrono> helper functions
[06:22] expression SFINAE in std::result_of and std::function
    [08:47] What is Substitution Failure Is Not An Error? [oh...I guess I answered that]
[08:56] Improving overload detection for std::pair and std::tuple
[12:09] Variable templates for type traits
[16:05] "Type traits for type traits" a.k.a. ? ...what's your f(n)? ?
    [16:57] How VS2015 Update 2 uses conjunction as an optimization
    [21:55] Performance gains using conjunction
    [22:37] ...and we're passing the savings along to youuuuu!
[23:21] std::<iostream> improvements (and some context)

[26:05] Great stuff! How can I try these out for myself? hint: check the links below ;)

Useful links:
Download Visual Studio 2015 Update 2 CTP!
Don't want to wait to download and install? Try out our new web compiler, and/or read this blog post to learn how to obtain the NuGet package!
Here's a link to STL's blog post on this video's contents (and more)!



Download this episode

The Discussion

  • User profile image

    The * needs to also point out that this is only referring to library features, not core language features.

  • User profile image

    @bsf:Thanks! I updated the title.

  • User profile image

    Guys, do you know something about exception specification improvment in C++17 ?

    I mean, will callstack be added to exception that I could see callstack in "catch" block ?


    Thanks, Denis.

  • User profile image

    If you are inside of a catch block in a live debugging session, you can switch to the context from which the exception was thrown by running the following command in the immediate window:

    .cxr *vcruntime140d.dll!__current_exception_context()

    This is for a debug build with the debug Visual C++ libraries; if you are debugging and using the retail Visual C++ libraries, use vcruntime140.dll instead.  If you have statically linked the CRT, you can use your own DLL's or EXE's name.  You'll need to make sure symbols are loaded for the DLL before doing this.

    You can switch back to the current call stack by running .cxr with no arguments.

  • User profile image

    @amesMcNellis: Thanks for clarification, but I mean not particular solution for some envorement, but uniqe solution that will be supported by all compilers. This is a basic cause why an exception is not used in C++ instead of other languages.

    In C++ no different between signal of crash from OS or an exception. Both does not support getting context (stack traces), but exceptions was thought like stuff that can help. Actually exceptions is useless in C++, cause we does not know place where it was threw.

    May be you know something about improving exceptions in C++ ?

    P.S.: Compilers must help developers and all routine stuffs need be generated by compiler.

  • User profile image

    Someone would need to write a proposal for exceptions to portably capture callstacks in Standard C++. I am not aware of any pending proposals.

Add Your 2 Cents