June 2013

C++-fest GoingNative 2013 announced: Sep 4-6, Redmond, WA, USA

gn13.PNGIn his Build talk yesterday, Herb Sutter announced the GoingNative conference will be held again this year, just over two months from now.

Like last year, the conference will be keynoted by Bjarne Stroustrup, and has two solid days dedicated to current and important material about Standard C++ on all compilers and platforms, with talks from the developers of Visual C++, Clang, IBM xlC++, and other compilers. This year, the organizers are also adding a third day with a mix of ISO C++ and Visual C++ specific topics. In-room attendance is limited to about 300 people.

GoingNative 2013 (registration) (announcement video clip)

Keynotes: Bjarne Stroustrup, Herb Sutter

Speakers:

  • Scott Meyers
  • Andrei Alexandrescu (Facebook)
  • Chandler Carruth (Google)
  • Stephan T. Lavavej (Microsoft)
  • Michael Wong (IBM)
  • Sean Parent (Adobe)
  • and more...

This is the only major public C++ event in North America in 2013 that isn't already sold out. Register today!

New paper: N3693, Working Draft, Technical Specification -- File System -- Beman Dawes

Note: This paper explores potential future standardization directions and alternatives. It does not discuss or propose to amend the C++14 Committee Draft paper whose ballot is currently in progress.

 

A new WG21 paper is available. A copy is linked below, and the paper will also appear in the next normal WG21 mailing. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.

Document number: N3693

Date: 2013-06-28

Working Draft, Technical Specification -- File System

by Beman Dawes

Excerpt:

This Technical Specification specifies requirements for implementations of an interface that computer programs written in the C++ programming language may use to perform operations on file systems and their components, such as paths, regular files, and directories.

New paper: N3695, SG5: Transactional Memory Meeting Minutes 2013/03/11-2013/06/10 -- Michael Wong

Note: This paper explores potential future standardization directions and alternatives. It does not discuss or propose to amend the C++14 Committee Draft paper whose ballot is currently in progress.

 

A new WG21 paper is available. A copy is linked below, and the paper will also appear in the next normal WG21 mailing. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.

Document number: N3695

Date: 2013-06-28

SG5: Transactional Memory (TM) Meeting Minutes 2013/03/11-2013/06/10

by Michael Wong

Excerpt:

Contents

Minutes for 2013/03/11 SG5 Conference Call ... 2

Minutes for 2013/04/08 SG5 Conference Call ... 10

Minutes for 2013/04/29 SG5 Conference Call ... 14

Minutes for 2013/05/13 SG5 Conference Call ... 23

Minutes for 2013/06/03 SG5 Conference Call ... 25

Minutes for 2013/06/10 SG5 Conference Call ... 30

New paper: N3696, Proposal to extend atomic with priority update functions -- Bronek Kozicki

Note: This paper explores potential future standardization directions and alternatives. It does not discuss or propose to amend the C++14 Committee Draft paper whose ballot is currently in progress.

 

A new WG21 paper is available. A copy is linked below, and the paper will also appear in the next normal WG21 mailing. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.

Document number: N3696

Date: 2013-06-26

Proposal to extend atomic with priority update functions

by Bronek Kozicki

Excerpt:

Paper [1] identifies a range of concurrent algorithms which, when implemented using the above described primitive, exhibit very good performance characteristics. If such algorithms were to become more popular in C++ , it would be useful to provide the primitive in <atomic>, rather than rely on the user to "Bring Your Own". This would serve the purpose of establishing a primitive which can be used for reasoning about, writing and reading of such concurrent algorithms, as well as allow users to automatically benefit from the hardware support for certain specializations of these operations, where it is available [2].

Quick Q: What type does auto use for containers? -- StackOverflow

Quick A: std::initalizer_list. And did you know you can even do for(auto i: {1,2,3,4,5}) ?

What type does auto use for containers?

I can achieve identical output by using different containers in C++. For example . .

    std::array<int, 5> v = {1,2,3,4,5};
    for(auto i : v)
        std::cout << i << ", ";

or

    std::vector<int> v = {1,2,3,4,5};

or

    int v[] = {1,2,3,4,5};

etc.

So what container does auto use here?

    auto v = {1,2,3,4,5};
    for(auto i : v)
        std::cout << i << ", ";

Quick Q: Why does draft C++14 have both runtime-sized arrays and std::dynarray? -- StackOverflow

Several people have asked:

Why both runtime-sized arrays and std::dynarray in C++14?

Draft C++14 includes both runtime-sized arrays and the std::dynarray container. From what I can tell, the only real difference between the two is that std::dynarray has an STL interface (e.g., begin, end, size, etc.), while runtime-sized arrays do not. So why does C++14 need them both?

Scott Meyers speaking at NWC++UG -- July 17, Redmond, WA, USA

In three weeks, Scott Meyers will be giving a free talk at the Northwest C++ Users' Group:

The Universal Reference/Overloading Collision Conundrum

by Scott Meyers

July 17, 2013 at 7:00pm (pizza at 6:45)
Microsoft Campus, Building 40
Redmond, WA, USA

Abstract

To help address the confusion that arises when rvalue references become lvalue references through reference collapsing, Scott Meyers introduced the notion of “universal references.” In this presentation, he builds on this foundation by explaining that overloading functions on rvalue references is sensible and useful, while seemingly similar overloading on universal references yields confusing, unhelpful behavior. But what do you do when you want to write a perfect forwarding function (which requires universal references), yet you want to customize its behavior for certain types? If overloading is off the table, what’s on? In this talk, Scott surveys a variety of options.

Though Scott will give a one-slide overview of the idea behind universal references at the beginning of the presentation, attendees are encouraged to familiarize themselves with the notion in more detail prior to the talk. Links to written and video introductions to universal references are available here.

Bio

Scott Meyers is one of the world’s foremost authorities on C++. He wrote the best-selling Effective C++ series (Effective C++, More Effective C++, and Effective STL); published and maintains the annotated training materials Overview of the New C++ (C++11) and Effective C++ in an Embedded Environment; is Consulting Editor for Addison Wesley’s Effective Software Development Series, and, with Herb Sutter and Andrei Alexandrescu, is a principal in C++ and Beyond. He has a Ph.D in Computer Science from Brown University. He’s currently working on a new book, Effective C++11/14, which he hopes to publish in early 2014.

C++11 Regular Expression Library -- Brian Overland

New at InformIT:

C++11 Regular-Expression Library

by Brian Overland

From the article:

Regular expressions are of practical value in many programs, as they can aid with the task of lexical analysis—intelligently breaking up pieces of an input string—as well as tasks such as converting from one text-file format (such as HTML) to another.

I’ve found that when the C++11 regular expression library is explained in a straightforward, simple manner, it’s easy to use. This chapter doesn’t describe all the endless variations on the regex function-call syntax, but it does explain all the basic functionality: how to do just about anything you’d want to do.