I've seen a lot of people use -O2 when compiling their C++ code, but why would you not use -O3 instead? My assumption is that it makes the code more optimised/faster compared to using -O2 unless there's some caveats that I'm missing here, but I'm not sure the reasoning behind why using -O3 isn't the standard or why it's not widely used for compiling with g++ (at least from my observations).