News

CLion 2016.3 released--Anastasia Kazakova

The new CLion is here!

CLion 2016.3 released

by Anastasia Kazakova

From the article:

In its third and final update this year, our cross-platform C/C++ IDE gets a firmer handle on modern language standards, incorporates top-voted changes in working with CMake project model, and brings lots of other enhancements. Take a closer look at these and other capabilities available in CLion 2016.3:

  • C++ language support: user-defined literals, C++14 digit separator, overload resolution support, and dozens of code analysis improvements.
  • C language support: C11 keywords support including auto-completion.
  • Remote GDB debug on Windows platform.
  • New approach to CMake project model: allows you to select the generation directory, open a project from an existing generation folder, and more.
  • Automatic switching of resolve context per build/run configuration change.
  • Semantic highlighting in the editor.
  • For Unreal Engine developers: plugin for better completion for Unreal Engine 4 sources, 3rd party plugin for CMake generation, and performance improvements for project re-opening in CLion.
  • Doxygen tparam tag support.
  • Various VCS improvements.

Leaky Lambdas -- Adi Shavit

There is a whole host of powerful closure critters that can squeeze into a captureless lambda.

Leaky Lambdas

by Adi Shavit

From the article:

It turns out that even captureless lambdas (which are e.g. convertible to function pointers) can see, hear, sniff and use certain things outside their own scope in their enclosing closure!

ACCU 2017 Call for Sessions extension -- ACCU

The Call for Session for the ACCU 2017 conference was extended.

 

Call for Sessions extension

by ACCU

From the article

Now that the conference website is up and running, we are pleased to confirm that the deadline for session proposals has been extended until 2016-12-02T23:58+00:00. That’s a few minutes before the midnight (UTC and Europe/London) that ends Friday 2nd December 2016.

The full details are in Call for Sessions which has been updated to reflect the new submission deadline.

 

Give Visual C++ a Switch to Standard Conformance--Andrew Pardoe

The Visual C++ Team is excited to announce that the compiler in Visual Studio 2017 RC will feature a mode much closer to ISO C++ standards conformance than any time in its history:

Give Visual C++ a Switch to Standard Conformance

by Andrew Pardoe

From the article:

The Visual C++ Team is previewing a compiler mode whereby longstanding non-conforming C++ constructs are rejected.  This includes fixes to pre-C++11 non-conformance bugs that affect a significant amount of existing code...

Lambda Magic ✨ -- Adi Shavit

Are C++ lambdas magical?

Lambda Magic ✨

by Adi Shavit

From the article:

 

"Like fairies, captureless lambdas are pure and magical creatures.
Unlike fairies, captureless lambdas can be converted to function pointers."

6 Tips to supercharge C++11 vector performance--Deb Haldar

Discussion on how we can efficiently use std::vector<T> container.

6 Tips to supercharge C++11 vector performance

by Deb Haldar

From the article:

Vector is like the swiss army knife of C++ STL containers. In the words of Bjarne Stroutsoup – “By default, use Vector when you need a container”. For mere mortals like us, we take this as gospel and just run with it. However, Vector is just a tool and like any tool, it can be used both effectively or ineffectively.

In this article we’ll look at 6 ways to optimize usage of vectors. We’ll look at both efficient and inefficient ways to perform the most common programming tasks using vectors, measure the performance gain we obtain by using vectors efficiently and try to understand why we’re getting the performance gain.

Help me sort out the meaning of "{}" as a constructor argument--Scott Meyers

Discussion on "Distinguish between () and {} when creating objects".

Help me sort out the meaning of "{}" as a constructor argument

by Scott Meyers 

From the article:

My experiments showed that one factor affecting whether "{{}}" as an argument list yields a zero-length std::initializer_list<T> was whether T had a default constructor, so I threw together some test code involving three classes, two of which could not be default-constructed. I then used both "({})" (note the outer parentheses) and "{{}}" as argument lists to a constructor taking a std::initializer_list for a template class imaginatively named X. When the constructor runs, it displays the number of elements in its std::initializer_list parameter.

CppCast Episode 79: Cppcheck with Daniel Marjamäki

Episode 79 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Daniel Marjamäki to talk about developing the CppCheck static analysis tool.

CppCast Episode 79: Cppcheck with Daniel Marjamäki

by Rob Irving and Jason Turner

About the interviewee:

Daniel lives in Stockholm, Sweden with his wife and son. He has a degree in electronics but has never worked as an electronics engineer. Daniel works as a consultant at Evidente in Sweden which provides consultants and contractors for embedded software development and static analysis. Daniel started Cppcheck almost 10 years ago as a hobby project that he works on in his spare time. Daniel sometimes works on other hobby projects such as an open source retro mobile phone with a rotary dial plate instead of buttons or a screen.