October 2016

camomilla: C++ error simplification script - - Vittorio Romeo

Article covering "camomilla", a Python script designed to post-process heavily-template-based C++ errors in order to make them easier to read.

camomilla: C++ error simplification script

by Vittorio Romeo

From the article:

camomilla uses simple text transformations to make gcc and clang errors smaller and easier to read. [...] The main text transformation used by camomilla to prevent full expansion of templates is "template typename collapsing", which hides nested typenames up to a user-specified depth. [...] The two other current transformations offered by camomilla are simple regex replacements that can act on namespaces or generic symbols. They can be defined in .json configuration files (which can recursively include each other!) [...] camomilla helps with [continuously transforming the same error] by automatically caching the last processed original error, so that the user can play around with different transformations and options.

rest_rpc released the first official version

The C++ open source community released (purecpp.org) released theit first official version.

rest_rpc website

by purecpp,org

From the website:

rest_rpc is developed using modern c++. The first version was released after several iterations and refactoring. rest_rpc is an easy to use, flexible, high-performance, cross-platform RPC framework.

Features of rest_rpc

  • RPC call just like local function call
  • Easy to use: developers only need to focus on business
  • Flexible: the serialization method can be freely customized, default support json,msgpack
  • Supports synchronous and asynchronous calls

DLib 19.2 released

Today a new version of DLib is available:

DLib 19.2 released

Release notes

by Davis King

From the article:

... So the obvious thing to do was to add an implementation of MMOD with the HOG feature extraction replaced with a convolutional neural network.  The new version of dlib, v19.2, contains just such a thing.  On this page you can see a short tutorial showing how to train a convolutional neural network using the MMOD loss function.  It uses dlib's new deep learning API to train the detector end-to-end on the very same 4 image dataset used in the HOG version of the example program.  Happily, and very much to the surprise of myself and my colleagues, it learns a working face detector from this tiny dataset.

Optimizing return values--Marco Foco

Marco Foco shows different solutions and tradeoffs to a dangling reference problem:

Optimizing return values

    by Marco Foco

From the article:

As you can see, class C contains a function get() which returns a reference to its internal state. In normal code, we must take care not to use this reference after our class has been destroyed...

Quick Q: Is the 'override' keyword just a check for a overriden virtual method?

Quick A: Yes.

Recently on SO:

Is the 'override' keyword just a check for a overriden virtual method?

That's indeed the idea. The point is that you are explicit about what you mean, so that an otherwise silent error can be diagnosed:

struct Base
{
    virtual int foo() const;
};

struct Derived : Base
{
    virtual int foo()   // whoops!
    {
       // ...
    }
};

The above code compiles, but is not what you may have meant (note the missing const). If you said instead, virtual int foo() override, then you would get a compiler error that your function is not in fact overriding anything.

New "C++ Day" event in Italy (Italian only)

A full day of C++ in the Italian language:

C++ Day 2016

October 29, 2016

Hotel Londra, Florence.

The site and the event are entirely in Italian. Here is a translation of the main information:

In a nutshell

The C++ Day 2016 is a special full-day event entirely dedicated to the C++ language, hosted in Florence (Italy), one of the most beautiful cities in the World. The event consists in technical sessions, interactive activities and networking.

Italian C++ professionals will speak (in Italian) on different C++ topics, including: C++17, Qt, API Design and Modern C++ for WinRT.

Other scheduled activities: C++ Unconference, C++ Coding Dojo, Template metaprogramming workshop.

 

Who should attend the C++ Day 2016?

This event is made by C++ professionals for C++ professionals, students and enthusiasts.

 

What can I find in the C++ Day 2016?

The agenda consists of 6x60' tech talks1x45' Q/A "Ask Us Everything" closing panel, 1x60' C++ Unconference, 1x60' C++ Coding Dojo, a workshop on Template Metaprogramming.

About the technical sessions, speakers will cover the following topics: C++17 for your daily job, Qt Graphics Stack, Data Oriented Design in C++, Kafka and High Performance Streaming, API Design, Modern C++ for the Windows Runtime (C++/WinRT).

The C++ Unconference is a 60' slot for people who want to open/join discussions on any C++ topic.

The C++ Coding Dojo is an interactive session where people will cooperate to solve programming challenges by wisely applying standard algorithms and containers.

The Template Metaprogramming Workshop will introduce templates and C++ metaprogramming. The workshop is free, however a separate registration is needed (details onto the registration page).

A 45' Q/A "Ask Us Everything" panel closes the event.

1/3 of the event will be spent for networking

Coffee breaks are included (lunch is not and - optionally - can be booked by buying another type of ticket).

You can refer to the detailed program for more information.
 

When and Where will the C++ Day 2016 take place?

The event will be held on October 29, 2016 at Hotel Londra, in Florence (Italy). The hotel is 5 minutes far from the main train station (Firenze Santa Maria Novella)

Check-in opens at 8.30 AM, the main event begins at 9.00 AM and will last for a full day.
 

Who supports this event?

Develer co-organizes the event with us.

Soft2000 is our main sponsor.

JetBrains and O'Reilly are supporting the C++ Day with free licenses and books.

Get in touch if you want to support us!
 

Do I need to register?

The C++ Day 2016 is free, but you must register to facilitate the organization of the event.

Optionally, you can buy a lunch ticket which includes both the event access and the lunch with staff members and speakers.

You can register here.

CppCon 2016 Trip Report -- Vittorio Romeo

Brief trip report covering thoughts and "lessons learned" from the author's favorite talks and his own sessions.

trip report - CppCon 2016

    By Vittorio Romeo

From the article:

CppCon 2016 ended yesterday - I had the pleasure of attending and presenting at this amazing conference again this year.

I'm really grateful to Jon Kalb, Bryce Lelbach, the conference staff, the speakers, my company and everyone else involved for making this possible.

In the same vein as my C++Now 2016 trip report, I wanted to share my thoughts regarding the talks I liked the most and regarding my sessions.

Opt-in header-only libraries -- Vittorio Romeo

Analysis of a library development technique that allows users to decide whether or not to consume the library as "header-only".

opt-in header-only libraries

    by Vittorio Romeo

From the article:

Libraries can be designed and implemented in order to allow users to choose between header-only usage, static linking or dynamic linking. [...] The main idea is to conditionally include .cpp files depending on a preprocessor macro, which can be defined during compilation. Functions also have to be conditionally decorated with the inline specifier.

Redis Hackathon

Redis (the world's most popular in-memory database) is hosting an online and physical hackathon.

Redis Hackathon

You might be interested in a hackathon that directly relates to C/C++.  Sign up as soon as possible because they're starting soon!

There are cash prizes of $5,000, $2,000, $1,000 and on-site (San Francisco and Tel Aviv) prizes of $1000.