December 2016

When noexcept?—Edouard of quasardb

A good question with a good answer.

When noexcept?

by Edouard of quasardb

From the article:

In a previous post, we had a look at the new constexpr keyword that has been introduced in C++ 11. Today we'll study another new fancy specifier: noexcept...

N4632: Draft agenda for Kona

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: N4632

Date: 2016-12-13

PL22.16/WG21 draft agenda: 27 Feb - 4 Mar 2017, Kona, HI, US

by Clark Nelson

Excerpt:

The primary goals of this meeting will be:

  • Finish processing ballot comments (P0488R0) on the C++17 CD (N4604)
  • Advance C++17 (prospective WD N4618) to DIS

Additional, lower-priority goals include:

  • Try to advance Modules (WD N4610) to PDTS
  • Try to advance Parallelism v2 (WD N4578) to PDTS
  • Try to advance Coroutines (prospective WD N4628) to PDTS
  • Try to advance Concurrency v2 to NP

Simplifying templates and #ifdefs with if constexpr—Simon Brand

The new if constexpr will change a good part of our code for the better!

Simplifying templates and #ifdefs with if constexpr

by Simon Brand

From the article:

if constexpr is a C++17 feature which allows conditionally compiling code based on template parameters in a clear and minimal fashion. It is essentially an if statement where the branch is chosen at compile-time, and any not-taken branches are discarded without being instantiated...

Capturing perfectly-forwarded objects in lambdas—Vittorio Romeo

Does [x = std::forward<decltype(x)>] behave like you expect?

capturing perfectly-forwarded objects in lambdas

by Vittorio Romeo

From the article:

Perfect forwarding and forwarding references allow developers to write generic template functions that retain the lvalueness/rvalueness of passed arguments [...] Let's try to use auto&&, std::forward and C++14's generalized lambda capture syntax to implement our desired semantics. [...] What we really want to do is:

  • Capture by copy if a is an rvalue reference.
  • Capture by reference if a is an lvalue reference.

[...]

Technical Debt - More Captureless Lambda Fun—Adi Shavit

More interesting facts about captureless lambdas.

Technical Debt

by Adi Shavit

From the article:

The series on captureless lambdas generated some interesting comments.  
The articles discusses converting captureless lambdas into function pointers without explicitly specifying the cast-to type, calling conventions and standard conformance and a special callbackizing function for capturing lambdas.

Slides of the 24th of November 2016 BeCPP Meeting

BeCPP_Logo_282x64.pngOn 24th of November, the Belgian C++ Users Group had their next event sponsored by Nikon Metrology.

Slides of the 24th of November 2016 BeCPP Meeting

There were two presentations:

  • "Mobile App Development for Multiple Platforms with Visual C++, 2016" (Marc Gregoire)
  • "What’s new in C++17?" (Peter Van Weert)

If you couldn’t attend the event in person, or if you would like to go over the material again, you can download them from the BeCPP website.

The view from Nov 2016 C++ Standard Meeting Issaquah

Hi all, I have been on airplanes for the last 10 weeks in a row, starting with CPPCON 2016 on September 16 2016. But first, I wanted to update everyone on the latest status of the C++ Standard meeting from Issaquah on Nov 7, 2016. Here is a blog post where you can see a video of what is coming for C++17 and download the slides. You can also see what happened in Issaquah for Evolution, Parallelism, Concurrency, and the latest status of the National Body Comments:

https://wongmichael.com/2016/12/09/the-view-from-nov-2016-c-standard-meeting-issaquah/

CppCast Episode 81: C++ Game Development at Ubisoft with Nicolas Fleury

Episode 81 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Nicolas Fleury, Technical Architect at Ubisoft Montreal, to talk about the development and performance tuning techniques used at Ubisoft on games like Rainbow Six Siege.

CppCast Episode 81: C++ Game Development at Ubisoft with Nicolas Fleury

by Rob Irving and Jason Turner

About the interviewee:

Nicolas has 13 years of experience in the video game industry, more years in the software industry in telecoms, in speech recognition and in computer assisted surgery. Technical Architect on Tom Clancy's: Rainbow Six Siege, he is one of the key Architects behind some collaboration initiatives at Ubisoft and was also Technical Architect on games like Prince of Persia. He presented at CppCon 2014 "C++ in Huge AAA Games".