Hello and welcome today. I find it always interesting to see that many issues are already solved in modern C++.
I am using real time audio software since more than 20 years. I was always thinking how is this written to be real time savvy. Especially because the number of channels and effects you can apply to them in real time was reaching crazy numbers. I was never developing audio processing on PCs, had some ideas but they where never backed up by knowledge how to do this. Yesterday I was checking the speeches of the current ACCU 2017 conference and found a lot of interesting C++ related topics. And looking more into the topic of look free algorithms I found another reason why I love C++. There are just so many solutions build in, that we just need to know about them.
Solutions are waiting to be discovered by you
Please notice the phrase “just need to know” from the initial chapter. In reality it is not so easy to find solutions to the issues we are facing. It is more like Indiana Jones and we need to discover them. Software developers are smart people and will for sure be successful in the hunt of information but they need to plan for this. The example of audio processing software shows the importance of rules that all project members need to know from the very beginning. The design on the system should support all of these needs from day one. Otherwise you might end up trying to “optimize” in the last 2 weeks before the project deadline is reached. Correcting design mistakes are cost intense and complicated, most of the times impossible. Fortunately there is plenty of info about modern system architecture and design patterns for C++ you can pick for your project from the very beginning. What I learned with C++ over the years is that you have not only improvements from the language itself, but also because the hardware developer are integrating better optimizations in the CPUs. C++ is using this because the compilers are getting also smarter. So it is a compound effect of better language features, better compilers + better hardware. I am quite sure if you checkout the speeches from the ACCU conference there are solutions you have searched for since a while.