July 2019

Yuri Minaev - Don’t take on C++ programmers support

It's a kind of humorous talk about the life of a development team which also deals with supporting C and C++ programmers. Actually, working with programmers is a lot of fun, and it is very productive. Not only can they send you a memory dump, but sometimes even partially solve the problem themselves and give you a hint. However, there's a flip side. If they have a technical issue, be ready to consume pints of coffee and loads of cookies. I shall tell you about our interesting and funny experience related to technical support of the PVS-Studio analyser - for example, how the tool goes nuts when coming across a 26mb string literal.

Don’t take on C++ programmers support

by Yuri Minaev

Topics:

  • About tech support
  • We test a lot, but...
  • 9 circles of testing
  • Stories
  • Don't trust standard library functions (sprintf)
  • More on standard functions (isspace)
  • Preprocessor fairy tales
  • 26mb ought to be enough for anybody
  • On logics
  • Initialisation is easy
  • When robots get tired
  • Detour (#include in weird places)
  • WinAPI is fun
  • The scariest bug (warning filters)
     

Quick Q; Concise explanation of reference collapsing rules requested: (1) A& & -> A&...

Quick A: the result is the same as calling the function you're forwarding to directly.

Recently on SO:

Concise explanation of reference collapsing rules requested: (1) A& & -> A& , (2) A& && -> A& , (3) A&& & -> A& , and (4) A&& && -> A&&

The reference collapsing rules (save for A& & -> A&, which is C++98/03) exist for one reason: to allow perfect forwarding to work...

CppCon 2019 Call for Poster Submissions

Are you doing something cool with C++? Got a great new library, technique, or tool?

CppCon 2019 Poster Submission

by CppCon

About the event

CppCon is pleased to announce its fourth Poster Session, with the objective of fostering conversation around the many exciting projects, approaches, design patterns, and creative work in which the C++ community is engaged.

CppCast Episode 205: CMake and VTK with Robert Maynard

Episode 205 of CppCast the first podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Robert Maynard from Kitware to discuss CMake and VTK.

CppCast Episode 205: CMake and VTK with Robert Maynard

by Rob Irving and Jason Turner

About the interviewee:

Robert Maynard is a principal engineer at Kitware and spends most of his time as a primary developer of VTK-m. VTK-m is a HPC toolkit of scientific visualization algorithms for highly concurrent processor and accelerator architectures. It uses a fine-grained concurrency model for data analysis and visualization algorithms allowing for seamless execution on GPU's or many-core CPUs.

When not working on VTK-m, Robert is either; writing CMake code, teaching CMake, or working to improve CMake.

Use constexpr for faster, smaller, and safer code--Trail of Bits

More safety, maybe more speed.

Use constexpr for faster, smaller, and safer code

by Trail of Bits

From the article:

With the release of C++14, the standards committee strengthened one of the coolest modern features of C++: constexpr. Now, C++ developers can write constant expressions and force their evaluation at compile-time, rather than at every invocation by users. This results in faster execution, smaller executables and, surprisingly, safer code...

Simplify Your Code With Rocket Science: C++20’s Spaceship Operator--Cameron DaCamara

Exited?

Simplify Your Code With Rocket Science: C++20’s Spaceship Operator

by Cameron DaCamara

From the article:

C++20 adds a new operator, affectionately dubbed the “spaceship” operator: <=>. There was a post awhile back by our very own Simon Brand detailing some information regarding this new operator along with some conceptual information about what it is and does.  The goal of this post is to explore some concrete applications of this strange new operator and its associated counterpart, the operator== (yes it has been changed, for the better!), all while providing some guidelines for its use in everyday code.