community

A major update to Meeting C++ recruiting

The job section of Meeting C++ received an important update: you can now share your resume with selected companies via a webform. Also you can share your open positions on the Meeting C++ job board or apply to become listed in the job section as a C++ employer.

A major update for Meeting C++ Recruiting

by Jens Weller

From the article:

Today I can announce a new offering in the recruiting area of Meeting C++: the CV upload form.

The mission of Meeting C++ is to support the C++ community and to build and maintain a worldwide network for C++. And with Meeting C++ recruiting, the goal is to integrate companies into this network, to make them visible as employers, and help people find the right jobs. With this service, I want to bring together companies, who have open positions for C++ Developers and those developers who are looking for a new challenging position!

CppCon 2017: Designing A Feature That Doesn't Fit--Patrice Roy

Have you registered for CppCon 2018 in September? Registration is open now.

While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2017 for you to enjoy. Here is today’s feature:

Designing A Feature That Doesn't Fit

by Patrice Roy

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

C++ is a wonderful and expressive language, that gives programmers a lot of freedom even though it actively seeks to let programmers obtain the maximal performance from their hardware. It so happens that sometimes, operating systems can make it easy to do things that are absolutely not natural for a C++ program, but that some C++ programmers consider essential to their practice.

This talk will explore the problem of adding functionality to the language, more specifically to the standard threading library, where said functionality is not a natural fit for the C++ language specification. Expressed otherwise: how can we find ways to meet the needs of users without corrupting the language we all love?

This talk will be more interesting to you if you have met situations where you wanted to do something in "pure C++" but found you had to resort to operating system-specific features to meet your objectives. We will discuss the design space that has been explored for the problem under study, and will try to make emerge the strengths and weaknesses of the various alternatives.

“Modern C++” != “New(est) Standard”--Arne Mertz

What do you think?

“Modern C++” != “New(est) Standard”

by Arne Mertz

From the article:

The term “Modern C++” is often used interchangeably with “Code using the new C++ standard”. Here, “new” may be anything from C++11 to C++17 or even whatever is available of C++20 right now. I think that modern C++ is more and something different than just adding that -std=c++17 flag.

First Meeting Embedded Conference Schedule available

Meeting Embedded is a new conference with a focus on embedded, hosting lots of talks connected to embedded & C++, plus a keynote by Dan Saks!

Meeting Embedded 2018

Schedule

Organized by Jens Weller

From the article:

Meeting Embedded 2018 is a one day event focused on hard and software development for embedded and the IoT. Meeting Embedded will be at Vienna House Andel's Berlin Hotel on the 14th of November, right in front of Meeting C++!

Win a free ticket for C++ on Sea!

The new, upcoming C++ conference "C++ on Sea" offers a free ticket.

Win a free ticket for C++ on Sea!

by C++ on Sea

About the competition:

For a brand new conference the interest in C++ on Sea already has been phenomenal!

Early Bird tickets are available and are already starting to sell - which is really exciting for us (and a little bit nerve wracking - especially after a technical hitch early on).

Amongst those that have heard of us the interest is definitely there, for which we are very grateful.

But we want to reach even more people - and that's where you come in. We'd like you to tweet about the conference.

CppCon 2017: Tools from the C++ eco-system to save a leg--Anastasia Kazakova

Have you registered for CppCon 2018 in September? Registration is open now.

While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2017 for you to enjoy. Here is today’s feature:

Tools from the C++ eco-system to save a leg

by Anastasia Kazakova

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

C++ gives you enough rope to shoot your leg off. Readable (and thus easy to maintain, easy to support) and error-free code in C++ is often hard to achieve. And while modern C++ standards bring lots of fantastic opportunities and improvements to the language, sometimes they make the task of writing high quality code even harder. Or can’t we just cook them right? Can the tools help?

In this talk I’ll highlight the main trickiness of C++, including readability problems, some real-world issues, problems that grow out of C++ context-dependent parsing. I’ll then try to guide you in how to eliminate them using tools from the C++ eco-system. This will cover code styles and supportive tools, code generation snippets, code analysis (including CLion’s inspections and Data Flow Analysis, C++ Code Guidelines and clang-tidy checks), refactorings. I will also pay some attention to unit testing frameworks and dependency managers as tools that are essential for the high quality code development.

CppCon 2017: C++ atomics, from basic to advanced. What do they really do?--Fedor Pikus

Have you registered for CppCon 2018 in September? Registration is open now.

While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2017 for you to enjoy. Here is today’s feature:

C++ atomics, from basic to advanced. What do they really do?

by Fedor Pikus

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

C++11 introduced atomic operations. They allowed C++ programmers to express a lot of control over how memory is used in concurrent programs and made portable lock-free concurrency possible. They also allowed programmers to ask a lot of questions about how memory is used in concurrent programs and made a lot of subtle bugs possible.

This talk analyzes C++ atomic features from two distinct points of view: what do they allow the programmer to express? what do they really do? The programmer always has two audiences: the people who will read the code, and the compilers and machines which will execute it. This distinction is, unfortunately, often missed. For lock-free programming, the difference between the two viewpoints is of particular importance: every time an explicit atomic operation is present, the programmer is saying to the reader of the program "pay attention, something very unusual is going on here." Do we have the tools in the language to precisely describe what is going on and in what way it is unusual? At the same time, the programmer is saying to the compiler and the hardware "this needs to be done exactly as I say, and with maximum efficiency since I went to all this trouble."

This talk starts from the basics, inasmuch as this term can be applied to lock-free programming. We then explore how the C++ lock-free constructs are used to express programmer's intent clearly (and when they get in the way of clarity). Of course, there will be code to look at and to be confused by. At the same time, we never lose track of the fact that the atomics are one of the last resorts of efficiency, and the question of what happens in hardware and how fast does it happen is of paramount importance. Of course, the first rule of performance — "never guess about performance!" — applies, and any claim about speed must be supported by benchmarks.

If you never used C++ atomics but want to learn, this is the talk for you. If you think you know C++ atomics but are unclear on few details, come to fill these few gaps in your knowledge. If you really do know C++ atomics, come to feel good (or to be surprised, and then feel even better).

CppCon 2017: How to break an ABI and keep your users happy--Gennadiy Rozental

Have you registered for CppCon 2018 in September? Registration is open now.

While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2017 for you to enjoy. Here is today’s feature:

How to break an ABI and keep your users happy

by Gennadiy Rozental

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

Technical debt is the bane of most established libraries, whether it is standard library or boost or local library developed in house. Paying this debt is expensive and in many cases seems infeasible.

As a result of several (justified at the time) decisions Google accumulated serious technical debt in how we use std::string. This became a blocking issue in our effort to open source Google’s common libraries.

To fix this we needed to break libstdc++ std::string ABI. This is the story of how we survived it kept Google still running.

CppCon 2017: My Little Object File: How Linkers Implement C++--Michael Spencer

Have you registered for CppCon 2018 in September? Registration is open now.

While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2017 for you to enjoy. Here is today’s feature:

My Little Object File: How Linkers Implement C++

by Michael Spencer

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

Ever wonder how the linker turns your compiled C++ code into an executable file? Why the One Definition Rule exists? Or why your debug builds are so large? In this talk we'll take a deep dive and follow the story of our three adventurers, ELF, MachO, and COFF as they make their way out of Objectville carrying C++ translation units on their backs as they venture to become executables. We'll see as they make their way through the tangled forests of name mangling, climb the cliffs of thread local storage, and wade through the bogs of debug info. We'll see how they mostly follow the same path, but each approach the journey in their own way.

We'll also see that becoming an executable is not quite the end of their journey, as the dynamic linker awaits to bring them to yet a higher plane of existence as complete C++ programs running on a machine.