Trip Report: ISO C++ Spring 2013 Meeting

wg21-attendanceThe Bristol meeting concluded a few hours ago, and I just posted my trip report on isocpp.org:

This afternoon in Bristol, UK, the ISO C++ standards committee adopted generic lambdas, dynamic arrays (an improved version of C99 VLAs), variable templates, reader/writer locks, make_unique, optional<T>, standard library user-defined literals, and a number of other language and library improvements – and approved the result as the feature-complete Committee Draft (CD) of Standard C++14 to be distributed for its primary international review ballot.

In addition to completing the C++14 CD document, the committee also made progress on three additional important parallel specifications that are on track to be published around the same time as C++14:

  • File system library (draft), based on Boost.FileSystem version 3.
  • Networking library, small at first and regularly extended.
  • “Concepts Lite” language extensions (draft), to express template constraints and improve template usability and error messages.

Together these mark the C++ committee’s main planned deliverables for 2014. …

To provide just a sampling [of C++14], here are a few quick examples of some of the newly added features…

Continue reading…

15 thoughts on “Trip Report: ISO C++ Spring 2013 Meeting

  1. Brian M – The problem isn’t the standard – clang and gcc have fully implemented it. The problem is one particular compiler vendor failing to keep up.

  2. Joe – It’s always a problem when the standard keeps changing and for little benefit ( for the majority of users). The more complex / extended the standard becomes the longer it will take for it to be supported, if at all! The standards people are not helping c++ but actually hurting it as a universal language. In addition, the more complex you make a language the more likely you are to see broken compilers or ‘deviant’ behaviour…… The last thing we need!

  3. I echo the concerns raised earlier about Microsoft’s compiler. The C++14 standard will be out long before Visual Studio supports C++11, and I wouldn’t be in the least bit surprised if C++17 standardisation predates C++11 support in cl.

    It’s a sad state of affairs – the 2005 and 2008 releases were excellent C++03 compilers (even 2003 wasn’t bad) and for a while Microsoft did really seem to be treating C++ as a first class language.

  4. Not really related but .., std::for_each was verbose but range fixes that. std::find_if is still way too verbose, Can you do something about that in next? I say a little curse every time I have to type out that monstrosity. It happens a lot.

  5. the lambdas proposal makes me wonder if we couldn’t use a similar notation to simplify function templates;

    auto func(auto x, auto&y) -> decltype(x + y)
    {

    }

    nary a…

  6. your lambda syntax is bad and you should feel bad[/Futurama refs]
    C++14 why u no Boost Lambda :
    for_each(a.begin(), a.end(), std::cout << _1 << ' ');

  7. @Brian m

    What divergence are you referring to, is it VLA’s being a subset in C++11 from the C kind? If so, I think the C++ team have the better answer. My take on that is that in time the C team will follow suit and deprecate their additional unfortunate early choices. Personally I’m not sure I’d have voted in VLA’s at all. But that would have left more divergence, not less, if that’s what you meant at all. So do elaborate, I’m keen to hear. There’s no point in criticizing without being specific. It also shows how hard it is to please all the people.

    I agree that a “simplified” C++ sounds good. If you have concrete proposals on what that means, do elaborate on that too and debate them on isocpp.org too, that’s what it’s for.

    I’d like to congratulate the C++ committee for their hard work. I like a lot of what I see. I’m sure there’ll be things I don’t like too (VLA’s being one), but until I’m clear enough about what that is I’ll keep quiet and even then since I didn’t object earlier, I’ll accept that such criticism might be a bit rich….

    Congratulations again to everybody for their hard work. I’m very excited about C++, from the C++14 ideas to the isocpp.org website and Concepts Light. Let’s be a little grateful. Things were looking a lot worse a year or two ago.

    I’m totally jazzed about the C++14 features so far.

    Now Herb, lets talk about the C++11 features missing from Visual Studio. When can we expect an update on that and what will be in / out?

  8. Just what c++ needed more complication and divergence! The only thing of use is the teaser about better diagnostics.
    What is required is a simplified c++ with some core features. c++/STL is now rapidly becoming a 80:20 language, 80% of users use only 20% of the features. The standards people need to get out there and see what really is being used or maybe I’m getting too cynical, but is it more about training opportunities for them – money!

  9. Nice progress on C++!

    > for_each( begin(v), end(v), []( auto& x ) { cout << x; } );

    What about for (auto& x : v) { cout < In C++11 we already could teach to never use raw pointers and explicit delete again,

    What’s wrong with non-owning raw pointers? What should be used instead?
    I agree with avoiding explicit delete (and new), but do we have a proper replacement for new[] yet?
    What about unique/shared_array?

    And what’s the status of string_view? String_view seems like an extremely useful class that we should’ve had a decade ago.

  10. Any chance that C++14 will bring better unicode/utf8 support? I’d really like to have normalization support in C++.

Comments are closed.