C++ Weekly Episode 76: static_print—Jason Turner
Episode 76 of C++ Weekly.
static_print
by Jason Turner
About the show:
In this episode Jason explores an experimental patch to gcc that allows for compile-time printing.
June 16-21, Sofia, Bulgaria
September 13-19, Aurora, CO, USA
October 25, Pavia, Italy
November 6-8, Berlin, Germany
November 3-8, Kona, HI, USA
By Jason Turner | Aug 14, 2017 08:25 AM | Tags: intermediate experimental
Episode 76 of C++ Weekly.
static_print
by Jason Turner
About the show:
In this episode Jason explores an experimental patch to gcc that allows for compile-time printing.
By Adrien Hamelin | Aug 11, 2017 03:26 PM | Tags: community
An amazing opportunity!
CppCon 2017: Call for Volunteers
From the article:
If you would like to attend CppCon 2017, see great C++ content, and meet our speakers and attendees, but a week’s registration doesn’t fit your time or money budget, consider volunteering.
By Adrien Hamelin | Aug 11, 2017 03:24 PM | Tags: intermediate community
Interested?
Live Webinar agenda and demo project: Refactoring C++ code
by Anastasia Kazakova
From the article:
The webinar about refactoring C++ code is planned for August. Arne Mertz, the author of popular Simplify C++ blog, will talk about general strategies and effective refactoring process.
By Adrien Hamelin | Aug 11, 2017 03:18 PM | Tags: efficiency community
Have you registered for CppCon 2017 in September? Don’t delay – Registration is open now.
While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2016 for you to enjoy. Here is today’s feature:
Turning Particle-Astro-Physicist-Hackers into Software Engineers
by Alex Olivas
Summary of the talk:
Want to increase software literacy in your organization? In this talk I'll present programs I've developed over the last year to teach C++ software engineering principles to graduate students and postdocs on the IceCube South Pole Neutrino Observatory. I believe similar programs could be beneficial to all types of organizations, from scientific collaborations to professional software shops.
IceCube is a kilometer-scale high energy neutrino observatory located deep in the Antarctic ice at the geographic South Pole. IceCube studies physics in energy regimes ranging from the most energetic processes in the visible universe (several orders of magnitude greater than the collision energies at the Large Hadron Collider), to dark matter detection at the 100 GeV scale. It is a relatively large collaboration, consisting of roughly 300 physicists and engineers from 48 institutions from a dozen different countries. IceCube has been collecting data for over 11 years (going into our 6th season with the fully completed detector) and is expected to run for at least another decade.
Many large scientific projects, which often run for decades, rely on code developed by hackers, who's focus and passion is rarely software engineering. Their primary passion, understandably, is the field for which they found themselves writing code. To make matters worse, the amount of work and focus required to secure a career in their chosen field often leaves little time and energy to devote to honing the skills needed to develop production quality code. Many students and postdocs often have, at best, a cursory understanding of the programming language(s) that comprise the experiment's codebase.
C++ has become the primary programming language for High Energy Physics (HEP) and will likely continue to be for decades to come. Consider, for example, that ROOT, GEANT, and Pythia to name a few critical HEP libraries are written in C++. Over the last year on IceCube, I've developed several comprehensive internal training programs in an attempt to bridge the gap between the scientist-hacker and the professional C++ software engineer. In this session I'd like to present the challenges I've encountered over the last year and my plans for extending these programs to the High Energy Physics community through the HEP Software Foundation.
By robwirving | Aug 11, 2017 08:17 AM | Tags: None
Episode 113 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Samy Bahra from Backtrace to talk about lesser known synchronization primitives and his work on the Concurrency Kit.
CppCast Episode 113: Synchronization Primitives with Samy Bahra
by Rob Irving and Jason Turner
About the interviewee:
Samy Al Bahra is the cofounder of Backtrace, where he is helping build a modern debugging platform for today’s complex applications. Prior to Backtrace, Samy was a principal engineer at AppNexus, where he played a lead role in the architecture and development of many mission-critical components of the ecosystem. His work at AppNexus was instrumental in scaling the system to 18 billion impressions with orders of magnitude in efficiency improvements. Prior to AppNexus, Samy was behind major performance improvements to the core technology at Message Systems. At the George Washington University High Performance Computing Laboratory, Samy worked on the UPC programming language, heterogeneous computing, and multicore synchronization. Samy is also the founder of the Concurrency Kit project, which several leading technology companies rely on for scalability and performance. Samy serves on the ACM Queue Editorial Board.
By Adrien Hamelin | Aug 10, 2017 01:28 PM | Tags: intermediate c++11
Quick A: Because it is defined at compile time in a special section.
Recently on SO:
A little confused about constexpr functions
If 'x' is declared static, there are no errors. Why?This is because there is always exactly one x in the program. It has an address (somewhere in the .data segment under normal conditions).
Confusingly, both static and extern keywords specify the storage duration as static (they differ in linkage)
How is it possible to get a variable address during the compilation process? Aren't they allocated at run-time?Variables with automatic, dynamic or thread storage durations are allocated at runtime. Static duration variables are allocated by the compiler. (The linker and OS can change the location, but they know how to fix all the references when they do)
By Adrien Hamelin | Aug 10, 2017 01:15 PM | Tags: efficiency community
A new event is coming:
22.08.2017, C++::London Meetup: Why Iterators Got It Wrong and A Foreign Function Interface Generator for C++
From the article:
Interested in C++ present and future? Want to improve your skills and knowledge - or just hang out with like-minded individuals? Don't miss this month's C++ London meetup!
By Adrien Hamelin | Aug 10, 2017 01:12 PM | Tags: c++17 basics
C++17 brought many things:
C++17: Direct vs Copy List Initialization
by Marc Gregoire
From the article:
The auto type deduction rules have changes in C++17. With C++17, if you use copy list initialization, then an initializer_list<> is deduced.
By Meeting C++ | Aug 10, 2017 08:12 AM | Tags: performance intermediate efficiency community codereview c++14 c++11 basics
Participate in the first two reviews at r/cpp_review:
The reviews have begun
by Jens Weller
From the article
A few weeks ago I announced a C++ review community, which since then has grown to 250+ members on reddit. There has been great feedback and discussions since then, so that the idea is now ready to be tested. With August, the first review period has started
By Adrien Hamelin | Aug 9, 2017 01:08 PM | Tags: community
A new version is out.
build2 0.6.0 adds Modules TS support for VC++, Clang, GCC
From the article:
These notes provide a more detailed discussion of major new features in the build2 release 0.6.0, including motivation for implementing them and their usage examples. For the complete list of changes, see the Release Announcement or the NEWS files in the individual packages.