PaffosONE , перечисли требования к компилятору.
Поддерживаемый стандарт языка.
Насколько точно стандарты языка должны поддерживаться и допустима ли неполная поддержка.
Список поддерживаемых операционных систем.
Поддержка требуемыми IDE(какими).
Список поддерживаемых расширений.
Требования к диагностике и статическому анализу.
Любые другие требования.
Компиллятор выбирается исходя из целевой платформы. Например если вы будете разрабатывать только под Windows - то вам дорога в Microsoft Visual C++. Если под Linux/BSD, то можно брать gcc/clang. Фичи у них у всех - примерно одинаковые.