I used to select the default warning level in C++ programming. For example, in VS, the default warning level is **`Level3 (/W3)`** and **`No (/WX-)`** (don't treat warnings as errors).

I am wondering is it a good practice to choose highest warning level in C++ programming, e.g. **`EnableAllWarnings (/Wall)`** with **`Yes (/WX)`** (treat warnings as errors)?

Any advice will be much appreciated.