Qual é o objetivo do operador ## em C ++ e como é chamado?

Eu estava olhando através do projeto DXUTCore que vem com o DirectX March 2009 SDK, e notei que em vez de fazer métodos de acesso normal, eles usaram macros para criar acessores genéricos, semelhante ao seguinte:

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

GET_ACCESSOR( WCHAR*, WindowTitle );

Parece que o operador ## apenas insere o texto do segundo argumento na macro para criar uma função operando em uma variável usando esse texto. Isso é algo que é padrão em C ++ (ou seja, não específico da Microsoft)? Seu uso é considerado boa prática? E o que é esse operador chamado?

questionAnswers(7)

yourAnswerToTheQuestion