Referring to this question, How to resolve "pure virtual method called" is there a compiler option, that raises error when a virtual method is called from constructor/destructor? When there is a pure virtual method, the program will crash at runtime with segmentation fault.
This is proven many times to be a bad design:
When you call virtual methods from within your constructors/destructors it's not the overriden versions of them that are called.
EDIT:
I am asking specifically for MSVC, but it would be useful if there is an option for each compiler (GCC, CLANG, etc).