November 2014

N4317: New Safer Functions to Advance Iterators -- Patrick Grace

A new WG21 paper is available. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.

Document number: N4317

Date: 2014-11-17

New Safer Functions to Advance Iterators

by Patrick Grace

Excerpt:

This is a simple proposal to add new safer more robust versions of advance, next, and prev for iterators to the standard C++ library.

N4315: make_array, revision 3 -- Zhihao Yuan

A new WG21 paper is available. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.

Document number: N4315

Date: 2014-11-07

make_array, revision 3

by Zhihao Yuan

Excerpt:

Changes since N4065

  • Merge make_array and array_of into one.
  • Cleanup notes for presentation.

N4314: Data-Invariant Functions (revision 2) -- Jens Maurer

A new WG21 paper is available. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.

Document number: N4314

Date: 2014-11-15

Data-Invariant Functions (revision 2)

by Jens Maurer

Excerpt:

This paper proposes a small set of functions performing common tasks with physical execution properties that do not vary with (specified parts of) the input values. Such functions are called data-invariant functions. It is the responsibility of the implementation to ensure that they remain data-invariant even when optimizing.

N4309: Return type deduction for explicitly-defaulted & deleted special member functions -- M. Price

A new WG21 paper is available. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.

Document number: N4309

Date: 2014-11-17

Return type deduction for explicitly-defaulted and deleted special member functions

by Miohael Price

Excerpt:

Proposes to allow auto and declspec(auto) as the type-specifiers for the return type of explicitly-defaulted and deleted special member functions. It seems this case was left out of N3638.

N4263: Toward a concept-enabled standard library -- Matt Austern et al.

A new WG21 paper is available. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.

Document number: N4263

Date: 2014-11-04

Toward a concept-enabled standard library

by Matt Austern, Gabriel Dos Reis, Eric Niebler, Bjarne Stroustrup, Herb Sutter, Andrew Sutton, Jeffrey Yasskin

Excerpt:

Now that the Concepts Lite TS is (almost) done, the next step is a version of the standard library that uses Concepts. Here are some informal notes on what we might want from such a library and what some of the incremental steps are for getting there.

N4316: std::rand replacement, revision 2 -- Zhihao Yuan

A new WG21 paper is available. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.

Document number: N4316

Date: 2014-11-08

std::rand replacement, revision 2

by Zhihao Yuan

Excerpt:

Changes since N4217

  • Rename the seeding utility to reseed, which resets the distributions’ states if needed, based on SG6 comments.
  • Cleanup the wording with the term “unpredictable state” stolen from Walter’s paper[1].
  • Ask the question about exposing the per-thread engine in Future Issues.
  • Update motivation to reflect the status quo.

 

Cevelop Updated for the Eclipse Luna Service Release 1 -- Mirko Stocker

News about Cevelop, a C++ IDE for professional developers from the Institute for Software at HSR Hochschule für Technik:

Cevelop Updated for the Eclipse Luna Service Release 1

by Mirko Stocker

From the announcement:

We have rebased Cevelop on top of the latest Eclipse Luna Service Release SR1. The Eclipse CDT team used the chance to include some new features. For example, code completion can now show default arguments and gives you more information on template parameters... See the CDT 8.5 changelog for a comprehensive list of changes.

Quick Q: Which is more efficient, push_back(move(var)) or emplace_back(var)? -- StackOverflow

Quick A: 1. Those cases are not equivalent. 2. Emplace is more for when you don't already have a named object of the correct type...

Recently on SO:

Efficiency of C++11 push_back() with std::move versus emplace_back() for already constructed objects

In C++11 emplace_back() is generally preferred (in terms of efficiency) to push_back() as it allows in-place construction, but is this still the case when using push_back(std::move()) with an already-constructed object?

For instance, is emplace_back() still preferred in cases like the following?

std::string mystring("hello world");
std::vector<std::string> myvector;

myvector.emplace_back(mystring);
myvector.push_back(std::move(mystring));
// (of course assuming we don't care about using the value of mystring after)

Additionally, is there any benefit in the above example to instead doing:

myvector.emplace_back(std::move(mystring));

or is the move here entirely redundant, or has no effect?

Quick Q: How do I make an array of shared_ptrs to unrelated types? -- StackOverflow

Quick A: Try vector<shared_ptr<boost::any>>.

Recently on SO:

Array of shared pointers to different classes

I am new to c++11 programming and now I'm trying to figure out if it is possible to create an array of shared pointers to different types. For example, something like that:

vector<shared_ptr<**???**>> v;
v.push_back(shared_ptr<int>(new int));
v.push_back(shared_ptr<MyClass>(new MyClass()));

or any other way to pass shared_ptr without knowing its type.

CppCon videos now even more widely available via Channel 9

cppcon-c9.pngThis just in on CppCon.org:

Video Availability Increased

As of today, CppCon 2014 session videos are available on Channel 9 at: http://channel9.msdn.com/Events/CPP/C-PP-Con-2014

The videos were originally made available and are still available on the CppCon YouTube channel at: https://www.youtube.com/CppCon

After posting the videos on YouTube, we received requests for additional availability from countries where YouTube is not available. We’ve worked with Channel 9 to be an additional hosting site. Channel 9 is available in countries where YouTube is not, so this helps us in our goal of supporting C++ developers all over the world.

Channel 9 also supports downloading the sessions in a number of formats, including audio only, for offline use.

The CppCon 2014 conference videos feature are over 100 sessions of C++ content from many of the world’s best C++ experts, all professionally recorded and edited by Bash Films. We are grateful to both YouTube and Channel 9 for hosting our content.