No creo que haya una definición ampliamente aceptada de lo que constituye un conocimiento "excelente" de C ++.
Tiende a ser difícil encontrar una respuesta clara a lo que constituiría un conocimiento "bueno", "excelente", "excelente", (etc.) de cualquier idioma, marco, plataforma o lo que sea. En muchos casos es particularmente difícil trazar una línea limpia entre el conocimiento que es realmente útil y, básicamente, conocer muchas curiosidades.
Esto es particularmente cierto en el caso de algo como C ++ que ha existido durante décadas, aplicado de muchas maneras diferentes y escrito en muchos estilos diferentes durante ese tiempo. Hay una cantidad casi aterradora que alguien podría aprender sobre el lenguaje que casi no está relacionado con su uso para resolver bien los problemas. Conocer todas las reglas de cosas como la resolución de sobrecarga o el ordenamiento parcial de plantillas de funciones solo es útil si está tratando de contratar a alguien para que trabaje en un compilador (o algo muy similar). He usado C ++ desde que se hizo razonablemente disponible por primera vez, y todavía tengo que usar (o incluso desear) un orden parcial de plantillas de funciones en código real.
Aunque técnicamente no responde a la pregunta formulada, me apresuro a aconsejar a cualquiera que incluya dicho requisito en los anuncios de empleo que intente mantener un cierto equilibrio en mente. Creo que a menudo se pone un énfasis excesivo en los lenguajes de programación, a expensas de cosas como la capacidad de resolución de problemas y los algoritmos generales. Conocer bien un lenguaje de programación ayuda a expresar bien las soluciones, pero generalmente es de mínima ayuda (en el mejor de los casos) para diseñar la solución en sí. Una gran solución mal expresada prácticamente siempre superará a una solución mediocre, sin importar qué tan bien se exprese.