Cómo implementar la finalización de la pestaña

Estoy tratando de descubrir cómo implementar la finalización de pestañas para subcomandos en una aplicación C ++. Me gustaría que funcione de manera muy similar a la finalización de la pestaña de Git. Estoy revisando la fuente de Git, pero no está saltando sobre mí.

He buscado formas de implementar la finalización de pestañas y no he encontrado una respuesta directa, por lo que supongo que podría no ser necesariamente una característica que cada aplicación individual tiene que implementar. ¿La finalización de tabulación es una característica del shell particular desde el que se ejecuta la aplicación? ¿Cuáles son los conceptos básicos que necesito saber para que mi aplicación admita la finalización de pestañas (particularmente en C ++)?

Respuestas a la pregunta(1)

Su respuesta a la pregunta