Boost 1.63.0
A new version is out!
Boost 1.63.0
June 16-21, Sofia, Bulgaria
September 13-19, Aurora, CO, USA
October 25, Pavia, Italy
November 6-8, Berlin, Germany
November 16-21, Kona, HI, USA
By Adrien Hamelin | Dec 29, 2016 01:50 PM | Tags: community boost
A new version is out!
Boost 1.63.0
By Adrien Hamelin | Dec 29, 2016 01:48 PM | Tags: intermediate experimental
They are made easier with this article.
Understanding Fold Expressions
by Sumant Tambe
From the article:
C++17 has an interesting new feature called fold expressions. Fold expressions offer a compact syntax to apply a binary operation to the elements of a parameter pack...
By jdgarcia | Dec 29, 2016 10:58 AM | Tags: community
Daniel Garcia reports from the recent std::cpp conference:
Conference Report
by Daniel Garcia
From the report:
Last November 24th we had the fourth edition of using std::cpp, our annual spanish conference on C++ for professional developers. The conference is a one-day free event held every year at University Carlos III of Madrid, in Leganés. We had around 200 registered attendees (most of them professional developers).
We would like to share some answers from the evaluation questionaries:
- 75% of attendees were professional developers, 14% were students, and 11% were academics.
- 92% declared they use regularly C++.
- The most popular version of C++ was C++11 (73%), followed by C++98/03 (63%) and C++14 (21%). Note that you could vote for more than one. However, no one declared to make use of any extension or TS.
- Most popular compiler was gcc (60%), followed by Microsoft (57%), and clang++ (14%).
- When we asked for domains a found a split among multiple sectors: telco (20%), aerospace/naval (11%), civil engineering (9%), bank/finance/insurance (7%), developer tools (7%), videogames (6%), research/academia (4%), transport (4%), industrial manufacturing (2%).
By Nico Josuttis | Dec 29, 2016 10:38 AM | Tags: c++17 c++14
Michael Wong and Nicolai Josuttis, will talk about new feature of C++17 at the OOP conference in Munich:
Parallel and Concurrent Programming in C++17 and Beyond
C++17 and C++14 (German)
by Michael Wong and Nicolai Josuttis
About the talks:
On Feb 1, 2017 two of the leading experts for C++, Michael Wong and Nicolai Josuttis, will talk about new feature of C++17 at the OOP conference in Munich.
By Adi | Dec 29, 2016 09:34 AM | Tags: None
The `path` to the web.
Emscriptened!
by Adi Shavit
From the article:
It might be a fun little project to generate a web-based interactive version of the effects of various methods of `filesystem::path`.
By Nico Josuttis | Dec 29, 2016 09:19 AM | Tags: c++17
Nicolai Josuttis speaks on the upcoming NDC conference in London about:
C++17 Core and Library Features
by Nicolai Josuttis
About the talk:
On January 19, 2017, Nicolai Josuttis, the author of The C++ Standard Library, will give two talks at the NDC conference in London about the core and library features of the upcoming C++17.
By Adrien Hamelin | Dec 26, 2016 03:07 PM | Tags: community basics
How to return well:
Return early and clearly
by Arne Mertz
From the article:
There are different guidelines out there about where and how many return statements to use in a function, e.g. return only once at the end of the function or return early and often. Which one makes for the most readable code?
By robwirving | Dec 23, 2016 11:07 AM | Tags: None
Episode 83 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Matt Calabrese to talk about his Regular Void Proposal, template<auto>, the state of Concepts and more.
CppCast Episode 83: Regular Void with Matt Calabrese
by Rob Irving and Jason Turner
About the interviewee:
Matt Calabrese is a software engineer working primarily in C++. He started his programming career in the game industry and is now working on libraries at Google. Matt has been active in the Boost community for over a decade, is currently a member of the Boost Steering Committee, and is a member of the Program Committee for C++Now. Starting in the fall of 2015, he has been attending C++ Standards Committee meetings, authoring several proposals targeting the standard after C++17, notably including a proposal to turn the void type into an instantiable type and a proposal for the standard library to introduce a generic algorithm for invoking standard Callables with argument types and argument amounts that may be partially calculated at compile-time or at runtime. He is also the author of the controversial paper "Why I want Concepts, but why they should come later rather than sooner", which may have contributed to the decision to not include the concepts language feature in C++17.
By Felix Petriconi | Dec 23, 2016 03:23 AM | Tags: performance intermediate c++11
Forster Brereton reports about his first steps to build a hybrid mutex.
Building a hybrid spin mutex in C++
by Foster Brereton
From the article
Blocking Mutexes
A blocking mutex will halt the thread until it acquisition. It is useful because it consumes negligible computer resources while blocked. This leaves the CPU free to perform other tasks, including whatever other task currently owns the mutex. All this goodness is not cheap, however: it takes a decent amount of time to block thread. If your critical section is brief, you could be spending a disproportionate amount of time protecting it instead of running it.
Generally, blocking mutexes should be used when your critical section will take a while, such as I/O operations, calling out to the OS, or doing laundry in a collegiate dorm.
Spinning Mutexes
A spinning mutex will enter into an infinite loop (spin) until acquisition. It is useful because it can resume very quickly once the lock has been obtained, resulting in minimal overhead while protecting a critical section. However, since the thread remains active on the CPU, it can reduce (or eliminate!) the ability of the CPU to do other work††. If your critical section is long, you could be spending a disproportionate amount of time protecting it instead of running it.
Generally, spin mutexes should be used when your critical section is brief, such as reading or writing a memory-resident data structure.Finding a middle ground
The dichotomy between the two mutex behaviors has left me stuck more than once. What if I was trying to protect a global resource that occasionally required a call to the OS? In those cases a blocking mutex is not a good fit, as modifying the memory-resident structure is pretty quick. However a spin mutex would be equally bad, because I do need to go to the OS time and again, and it would be a pessimization to spike a CPU while doing so.
By Niks | Dec 21, 2016 04:45 AM | Tags: c++14 advanced
Quantification expresses the extent to which a predicate is true over a set of elements. This installment describes the use of predicate logic in metaprogramming.
Quantifiers, metaprogramming and concepts
by Nikos Athanasiou
From the article:
Metaprograms often use predicate logic in creative ways. For example, type queries in generic code are used to constrain, dispatch, specialize, activate or deactivate code at compile time.