GotW #1 Solution, and GotW #2: Temporary Objects
I've just posted the solution to GotW #1, and problem #2 for discussion. I hope you enjoy them.
October 25, Pavia, Italy
November 6-8, Berlin, Germany
November 3-8, Kona, HI, USA
By Herb Sutter | May 9, 2013 09:52 AM | Tags: None
I've just posted the solution to GotW #1, and problem #2 for discussion. I hope you enjoy them.
By Blog Staff | May 9, 2013 08:10 AM | Tags: None
	
The official post-meeting standards papers mailing is now available. It includes papers adopted at the meeting, updated papers, and updated issues lists.
Please direct discussion to the public std-proposals forum.
| WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup | Disposition | 
|---|---|---|---|---|---|---|---|
| SD-1 | 2013 PL22.16/WG21 document list | Clark Nelson | 2013-05-07 | 2013-05 | |||
| SD-2 | ISO WG21 and INCITS PL22.16 membership list | Clark Nelson | 2013-05-06 | 2013-05 | |||
| N3621 | Minutes, WG21 Teleconference 2013-03-29 | Kyle Kloepper | 2013-03-29 | 2013-05 | |||
| N3622 | Minutes: WG21 Meeting No. 55, 15-20 April 2013 - Bristol, UK | Kyle Kloepper | 2013-05-03 | 2013-05 | |||
| N3623 | Minutes: PL22.16 Meeting No. 60, 15-20 April 2013 - Bristol, UK | Kyle Kloepper | 2013-05-03 | 2013-05 | |||
| N3624 | Core Issue 1512: Pointer comparison vs qualification conversions (revision 3) | Jens Maurer | 2013-04-15 | 2013-05 | N3498 | Core | Adopted 2013-04 | 
| N3625 | A URI Library for C++ | G. Matthews, D. Berris | 2013-04-30 | 2013-05 | N3507 | Networking | |
| N3626 | Floating-Point Typedefs Having Specified Widths | P. Bristow, C. Kormanyos, J. Maddock | 2013-04-05 | 2013-05 | Numerics | ||
| N3627 | Relaxed switch statement | Zhihao Yuan | 2013-02-07 | 2013-05 | Evolution | ||
| N3628 | C and C++ Compatibility | Bjarne Stroustrup | 2013-04-08 | 2013-05 | |||
| N3629 | Simplifying C++0x Concepts | Doug Gregor | 2013-04-09 | 2013-05 | Concepts | ||
| N3630 | async, ~future, and ~thread (Revision 1) | Herb Sutter | 2013-04-12 | 2013-05 | N3451 | Concurrency | Revised N3636, N3637 | 
| N3631 | C11: The New C Standard | Thomas Plum | 2013-05 | ||||
| N3632 | Additional std::async Launch Policies | Peter Dimov | 2013-04-11 | 2013-05 | Concurrency | ||
| N3633 | What can signal handlers do? (CWG 1441) | Hans Boehm | 2013-4-25 | 2013-05 | N3618 | Concurrency | |
| N3634 | Improvements to std::future<T> and Related APIs | N. Gustafsson, A. Laksberg, H. Sutter, S. Mithani | 2013-05-02 | 2013-05 | N3558 | Concurrency | |
| N3635 | Towards restrict-like semantics for C++ | M. Wong, R. Silvera, R. Mak, C. Cambly, et al. | 2013-04-29 | 2013-05 | Evolution | ||
| N3636 | ~thread should join | Herb Sutter | 2013-04-17 | 2013-05 | N3630 | Concurrency | |
| N3637 | async and ~future (Revision 3) | Herb Sutter | 2013-04-17 | 2013-05 | N3630 | Concurrency | |
| N3638 | Return type deduction for normal functions | Jason Merrill | 2013-04-17 | 2013-05 | N3582 | Core | Adopted 2013-04 | 
| N3639 | Runtime-sized arrays with automatic storage duration (revision 5) | Jens Maurer | 2013-04-16 | 2013-05 | N3497 | Core | Adopted 2013-04 | 
| N3640 | Extending shared_ptr to Support Arrays | Peter Dimov | 2013-04-15 | 2013-05 | Library | ||
| N3641 | Extending make_shared to Support Arrays | Peter Dimov | 2013-05-02 | 2013-05 | Library | ||
| N3642 | User-defined Literals for Standard Library Types (part 1 - version 4) | Peter Sommerlad | 2013-04-18 | 2013-05 | N3531 | Library | Adopted 2013-04 | 
| N3643 | Range Adaptor for Selecting from Pair or Tuple | Alan Talbot | 2013-04-16 | 2013-05 | N3585 | Ranges | |
| N3644 | Null Forward Iterators | Alan Talbot | 2013-04-18 | 2013-05 | N3585 | Library | Adopted 2013-04 | 
| N3645 | Splicing Maps and Sets (Revision 1) | A. Talbot, H. Hinnant, J. Dennett, J. Wakely | 2013-05-04 | 2013-05 | N3586 | Library | |
| N3646 | Network byte order conversion | Robert Pratte | 2013-04-16 | 2013-05 | N3620 | Networking | |
| N3647 | Minutes: PL22.16 Meeting No. 59, 15-19 October 2012 Portland, Oregon, USA | Kyle Kloepper | 2013-04-15 | 2013-05 | N3455 | ||
| N3648 | Wording Changes for Generalized Lambda-capture | D. Vandevoorde, V. Voutilainen | 2013-04-17 | 2013-05 | N3610 | Evolution | Adopted 2013-04 | 
| N3649 | Generic (Polymorphic) Lambda Expressions (Revision 3) | F. Vali, H. Sutter, D. Abrahams | 2013-04-19 | 2013-05 | N3559 | Evolution | Adopted 2013-04 | 
| N3650 | Resumable Functions | N. Gustafsson, D. Brewis, H. Sutter, S. Mithani | 2013-05-02 | 2013-05 | N3564 | Concurrency | |
| N3651 | Variable Templates (Revision 1) | Gabriel Dos Reis | 2013-04-19 | 2013-05 | N3615 | Evolution | Adopted 2013-04 | 
| N3652 | Relaxing constraints on constexpr functions / constexpr member functions and implicit const | Richard Smith | 2013-04-18 | 2013-05 | N3597, N3598 | Evolution | Adopted 2013-04 | 
| N3653 | Member initializers and aggregates | V. Voutilainen, R. Smith | 2013-04-17 | 2013-05 | N3605 | Evolution | Adopted 2013-04 | 
| N3654 | Quoted Strings Library Proposal (Revision 2) | Beman Dawes | 2013-04-19 | 2013-05 | N3570 | Library | Adopted 2013-04 | 
| N3655 | TransformationTraits Redux, v2 | Walter E. Brown | 2013-04-18 | 2013-05 | N3546 | Library | Adopted 2013-04 | 
| N3656 | make_unique (Revision 1) | Stephan T. Lavavej | 2013-04-18 | 2013-05 | N3588 | Library | Adopted 2013-04 | 
| N3657 | Adding heterogeneous comparison lookup to associative containers (rev 4) | J. Wakely, S. Lavavej, J. Muñoz | 2013-03-19 | 2013-05 | N3465 | Library | Adopted 2013-04 | 
| N3658 | Compile-time integer sequences | Jonathan Wakely | 2013-04-18 | 2013-05 | N3493 | Library | Adopted 2013-04 | 
| N3659 | Shared locking in C++ | H. Hinnant, D. Vollmann, H. Boehm | 2013-04-19 | 2013-05 | N3568 | Concurrency | |
| N3660 | User-defined Literals for std::complex, part 2 of UDL for Standard Library Types (version 4) | Peter Sommerlad | 2013-04-19 | 2013-05 | N3531 | Library | |
| N3661 | Digit Separators | Lawrence Crowl | 2013-04-19 | 2013-05 | N3499 | Evolution | |
| N3662 | C++ Dynamic Arrays | L. Crowl, M. Austern | 2013-04-19 | 2013-05 | N3532 | Library | Adopted 2013-04 | 
| N3663 | C++ Sized Deallocation | Lawrence Crowl | 2013-04-30 | 2013-05 | N3536 | Core | |
| N3664 | Clarifying Memory Allocation | L. Crowl, C. Carruth, R. Smith | 2013-04-19 | 2013-05 | N3537 | Core | Adopted 2013-04 | 
| N3665 | Uninterleaved String Output Streaming | L. Crowl | 2013-04-19 | 2013-05 | Library | ||
| N3666 | C++ Latches and Barriers | Alasdair Mackintosh | 2013-04-18 | 2013-05 | N3600 | Concurrency | |
| N3667 | Drafting for Core 1402 | Jason Merrill | 2012-04-16 | 2013-05 | Core | Adopted 2013-04 | |
| N3668 | exchange() utility function, revision 3 | Jeffrey Yasskin | 2013-04-19 | 2013-05 | N3608 | Library | Adopted 2013-04 | 
| N3669 | Fixing constexpr member functions without const | Nicolai Josuttis | 2013-04-19 | 2013-05 | Library | Adopted 2013-04 | |
| N3670 | Wording for Addressing Tuples by Type: Revision 2 | Mike Spertus | 2013-04-19 | 2013-05 | N3584 | Library | Adopted 2013-04 | 
| N3671 | Making non-modifying sequence operations more robust: Revision 2 | M. Spertus, A. Pall | 2013-04-19 | 2013-05 | N3607 | Library | Adopted 2013-04 | 
| N3672 | A proposal to add a utility class to represent optional objects (Revision 4) | F. Cacciola, A. Krzemieński | 2013-04-19 | 2013-05 | N3527 | Library | Adopted 2013-04 | 
| N3673 | C++ Library Working Group Ready Issues Bristol 2013 | Daniel Krügler | 2013-04-19 | 2013-05 | N3522 | Library | Adopted 2013-04 | 
| N3674 | C++ Standard Core Language Active Issues, Revision 84 | William M. Miller | 2013-05-03 | 2013-05 | N3539 | Core | |
| N3675 | C++ Standard Core Language Defect Reports and Accepted Issues, Revision 84 | William M. Miller | 2013-05-03 | 2013-05 | N3540 | Core | |
| N3676 | C++ Standard Core Language Closed Issues, Revision 84 | William M. Miller | 2013-05-03 | 2013-05 | N3541 | Core | |
| N3677 | A Proposal to Add additional RAII Wrappers to the Standard Library | Andrew L. Sandoval | 2013-04-26 | 2013-05 | Library | ||
| N3678 | C++ Stream Guards | Lawrence Crowl | 2013-04-30 | 2013-05 | Concurrency | ||
| N3679 | Async() future destructors must wait | Hans-J. Boehm | 2013-5-05 | 2013-05 | Concurrency | ||
| N3680 | Improving pair and tuple | Daniel Krügler | 2013-04-14 | 2013-05 | Library | ||
| N3681 | Auto and braced-init lists | Ville Voutilainen | 2013-05-02 | 2013-05 | Evolution | ||
| N3682 | C++ Standard Evolution Active Issues List (Revision R02) | Ville Voutilainen | 2013-04-29 | 2013-05 | N3566 | Evolution | |
| N3683 | C++ Standard Evolution Completed Issues List (Revision R02) | Ville Voutilainen | 2013-04-29 | 2013-05 | Evolution | ||
| N3684 | C++ Standard Evolution Closed Issues List (Revision R02) | Ville Voutilainen | 2013-04-29 | 2013-05 | N3567 | Evolution | |
| N3685 | string_view: a non-owning reference to a string, revision 4 | Jeffrey Yasskin | 2013-05-03 | 2013-05 | N3609 | Library | |
| N3686 | Traversable arguments for container constructors and methods, wording revision 3 | Jeffrey Yasskin | 2013-05-03 | 2013-05 | N3513 | Ranges | |
| N3687 | C++ Standard Library Active Issues List (Revision R83) | Alisdair Meredith | 2013-05-06 | 2013-05 | N3522 | Library | |
| N3688 | C++ Standard Library Defect Report List (Revision R83) | Alisdair Meredith | 2013-05-06 | 2013-05 | N3523 | Library | |
| N3689 | C++ Standard Library Closed Issues List (Revision R83) | Alisdair Meredith | 2013-05-06 | 2013-05 | N3524 | Library | 
By Blog Staff | May 9, 2013 06:56 AM | Tags: basics
	Quick A: Write a constructor that takes a std::initializer_list.
See the link for the nice longer answer:
how to implement an initializer list for user defined type? (analogus to std::vector initializer list)
std::vectorcan be initialized as
std::vector<std::string> words1 {"the", "frogurt", "is", "also", "cursed"}; refNow if want to achieve the similar functionality for one of my types how do I go about doing it? How should I implement the constructor for this functionality?
By Blog Staff | May 8, 2013 07:43 PM | Tags: None
The ISO and U.S. meeting minutes from Bristol are now available.
Document number: N3622, N3623
Date: 2013-05-03
Minutes -- WG21 Meeting No. 55, 15-20 April 2013, Bristol, UK
Minutes -- PL22.16 Meeting No. 60, 15-20 April 2013, Bristol, UK
by Kyle Kloepper
By Blog Staff | May 8, 2013 01:27 PM | Tags: basics
Quick A: So easily that it's automatic... just return a value, not a reference.
How does return by rvalue reference work?
Just when I thought I kind of understand rvalue reference, I ran into this problem. The code is probably unnecessarily long, but the idea is quite simple. There is a
main()function, andreturnRValueRef()function.[...] AClass && returnRValueRef() { AClass a1(4); return move(a1); } int main() { AClass a; a = returnRValueRef(); }
By Blog Staff | May 8, 2013 09:22 AM | Tags: intermediate
SO's version of the question added one layer of wrapping:
What's the difference between doing vector<vector<T...>> and vector<vector<T>...>
I saw code like this earlier:
using A = std::vector<std::vector<T>...>where
Tis a variadic list of template arguments. I wanted to know what the difference is between putting the parameter pack at the end of the last angle bracket and the first. For example:using B = std::vector<std::vector<T...>>;Both of these two compile fine but I don't know what the difference is.
Can someone explain? Thanks.
By Blog Staff | May 7, 2013 11:35 AM | Tags: basics
Head on over to the C/C++ Cafe for:
Introduction to the C++11 feature: delegating constructors
by sumi_cj
Excerpt:
In C++98, if a class has multiple constructors, these constructors usually perform identical initialization steps before executing individual operations. In the worst scenario, the identical initialization steps are copied and pasted in every constructor. See the following example: ...
By Blog Staff | May 7, 2013 07:41 AM | Tags: None
Anthony Williams just posted another nice trip report on the recent standards meeting in Bristol, as well as a few words on the ACCU conference held back-to-back with the ISO meeting:
ACCU 2013 and the C++ Standards Meeting
by Anthony Williams
This year's ACCU conference was at a new venue: the Marriott hotel in Bristol. This is a bit closer to home for me than the previous venue in Oxford, which made the trip there and back more comfortable. As ever, the conference itself was enjoyable, educational and exhausting in equal measure.
This year was also BSI's turn to host the Spring ISO C++ committee meeting, which was conveniently arranged to be the week following ACCU, in the same hotel. Having not attended a meeting since the last time the committee met in the UK, I was glad to be able to attend this too. ...
By Blog Staff | May 6, 2013 11:26 PM | Tags: intermediate basics
Head on over to the C/C++ Cafe for:
Introduction to the C++11 feature: extended friend declaration
by FangLu
Excerpt:
The extended
frienddeclaration feature is newly introduced in the C++11 standard. In this article, I will introduce this feature and provide some examples on how to use this feature.
Firstly, let's see why this feature is added into C++11. ...
By Blog Staff | May 6, 2013 06:46 PM | Tags: intermediate basics
Herb Sutter is resuming his Guru of the Week series of problem-and-solution articles about coding in C++, with the intent to gradually update the 88 existing issues and write a few more along the way.
The first problem was posted today:
GotW #1: Variable Initialization -- or Is It? (3/10)
by Herb Sutter
This first problem highlights the importance of understanding what you write. Here we have a few simple lines of code — most of which mean something different from all the others, even though the syntax varies only slightly.
The solution is coming "soon"...