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