An Introduction to C++ Coroutines

Relatore: James McNellis

One of the most interesting new features being proposed for C++ standardization is coroutines, formerly known as “resumable functions.”  C++ coroutines are designed to be highly scalable, highly efficient (no overhead), and highly extensible, while still interacting seamlessly with the rest of the C++ language.

This session will consist of an in-depth introduction to C++ coroutines.  We will begin by looking at the rationale for adding coroutines to the C++ language and then look at several examples that show [1] how to write a coroutine, [2] how to use the extensibility model to adapt existing libraries to work with C++ coroutines, and [3] how coroutines really work “under the hood,” using the Visual C++ implementation as a reference.  Finally, we will look briefly at the status of the C++ coroutines proposal and some of the competing ideas.

Materiale:

Adventures in a Legacy Codebase

Relatore: James McNellis

Three years ago, the Visual C++ team undertook a project to substantially modernize and redesign the Microsoft C Runtime (CRT) with the goals of improving long-term maintainability, performance, and usability.  This work culminated with the release of the Universal CRT with Windows 10 and Visual Studio 2015.

In this session, I will discuss our team’s experiences from this project.  We’ll look at some of the techniques we used in modernizing a decades-old codebase and look at some of the challenges that we faced, lessons that we learned, and best practices that we developed during the course of the project.

Materiale:

Da un grande C++ derivano grandi responsabilità

Relatore: Marco Arena

Il grande successo del C++ deriva da tre aspetti chiave: la retrocompatibilità che ne guida l’evoluzione, la flessibilità di abbracciare, in modo efficiente, qualsiasi paradigma di sviluppo e la capacità di supportare, by design, la programmazione di sistema. Come un grande potere, se nelle mani sbagliate queste caratteristiche possono rendere complicato e pericoloso l’utilizzo del linguaggio. Dominare questo potere è possibile se si impara ad essere responsabili, cioè utilizzando l’offerta completa dello standard ISO, che da oggi non comprende solo “il linguaggio e la libreria” ma anche una serie di linee guida e idiomi maturati in circa vent’anni di evoluzione. In questa sessione vi racconterò alcune storie di uso responsabile del linguaggio, aneddoti di semplificazione e scenari da evitare.

Materiale:

REST e Websocket in C++ diventano semplici e produttivi con il REST SDK

Relatore: Raffaele Rialdi

Nell’universo dei servizi la filosofia architetturale REST e il protocollo Websocket hanno decisamente preso il sopravvento come lingua franca tra i diversi sistemi operativi e le moltitudini di device, dai più piccoli IoT ai grossi servizi di cloud.
Nel corso della sessione, grazie al Microsoft REST SDK, vedremo quanto sia semplice scrivere server e consumer C++ e come superare le piccole lacune dell’SDK.
Inoltre, viste le performance decisamente incoraggianti, vedremo come usarli anche in uno scenario di interoperabilità con il .NET Framework tra processi, riducendo drasticamente il rischio di pericoloso e tedioso marshalling.

Materiale:

No More Pointers! (and other catchphrases) - New ideas for teaching and learning modern C++

Relatore: Marco Foco

In this hour we’ll try to investigate what’s the “original sin” of C++”, why most of C++ courses are still C courses with an object orientation appendix, and how all this could change when teaching modern C++.

Materiale:

Ask Us Everything

Tutti gli speakers

Gli speakers risponderanno alle domande del pubblico per approfondimenti e per discutere di aspetti non trattati durante le loro sessioni.

Questione di Codice: Come possiamo rendere più semplice la scrittura, il test e il deploy di codice C++ complesso?

Relatore: RogueWave Software

Rogue Wave offre funzionalità che aiutano il tuo team a produrre codice migliore semplificando tutti gli aspetti del ciclo di vita di sviluppo e riducendo i tempi di rilascio complessivi:
CodeDynamics & TotalView danno un’occhiata, in fase di runtime, alle tue complesse applicazioni C ++, per aiutare a identificare e correggere bugs, problemi di memoria e crashes.
ClokWork, rileva tutte le problematiche di sicurezza e affidabilità in tempo reale, grazie all’analisi statica del codice. Questo toolkit si integra facilmente, supporta continuous integration e actionable reporting.
Libraries, offrono sofisticate soluzioni di analisi integrabili in applicazioni C++.
Vieni a incontrare le nostre soluzioni: possiamo aiutarti!

Materiale: