&gt; One has to know what kind of constructs the compiler can work well with and then change the problematic code to such that the compiler can produce efficient code out of.<p>Great! And luckily C++ allows you to do this. Once you&#x27;ve profiled and found the bottlenecks, you can get as low level as you need to solve it.<p>Far better to remain idiomatic until you find a problem rather than painting yourself into a bunch of low level architectural corners with no justification other than &quot;it might be slow&quot;.