Don't make use of any external C++ classes.
They are not offered on all platforms and this would make Bochs non-portable. There is use of such classes in the optional debugger. I plan on removing this use.
Don't use fancy C++ features.
Bochs is incredibly performance sensitive, and will be increasingly so as more speed enhancements are added. There's a time and place for most everything and this is not it. Some advanced features create overhead in the generated code that you don't see. They also convolute the code, and sometimes occlude that is really going on.
Don't use templates
Don't use virtual functions if not strictly required
Don't use C++ exceptions
Use soft tabs.
At least when you submit code, convert all hard tabs to spaces. There is no uniform way to handle tabs properly.
Please do compile with all warnings turned on.
It's really difficult to spot interesting warnings when a compile is littered with non-interesting ones.
Don't use signed ints where unsigned will do.
Make sure that contributed code / patches are LGPL compatible.