https://medium.com/@sreejith.sk/bridging-the-gap-a-developers-guide-to-transitioning-from-c-14-to-c-20-cc18adeb96e3