¿Cuál es el propósito del operador ## en C ++ y cómo se llama?

Estaba revisando el proyecto DXUTCore que se incluye con el SDK de marzo de 2009 de DirectX y noté que, en lugar de crear métodos de acceso normales, utilizaban macros para crear los accesores genéricos, similares a los siguientes:

#define GET_ACCESSOR( x, y )  inline x Get##y()  { DXUTLock l; return m_state.m_##y;};
...

GET_ACCESSOR( WCHAR*, WindowTitle );

Parece que el operador ## simplemente inserta el texto del segundo argumento en la macro para crear una función que opera en una variable que usa ese texto. ¿Es esto algo que es estándar en C ++ (es decir, no es específico de Microsoft)? ¿Se considera su uso como buena práctica? Y, ¿cómo se llama ese operador?

Respuestas a la pregunta(7)

Su respuesta a la pregunta