sando vírgulas dentro de uma macro sem parênteses: como posso misturar e combinar com um model

Considere uma macro simples:

#define ECHO(x) x

ECHO(foo(1, 2))

Isso produz a saída exata que esperamos:

foo(1, 2)

O exemplo acima funciona porque os parênteses adjacentes à chamada da função são reconhecidos pelo pré-processado

Agora considere o que acontece se eu usar um modelo em vez de uma função, chame:

ECHO(template<int, bool>)

Isso causa um erro porque o pré-processador interpreta otemplate<int e abool> como dois argumentos separados para a macro. O pré-processador não reconhece<> pelo escopo!

Existe uma maneira de usar um modelo como este em uma macr

questionAnswers(6)

yourAnswerToTheQuestion