operador de suporte << em uma macro
Eu gostaria de implementar uma macro que faça o seguinte:
#define report(s) print(), throw std::runtime_error(s)
print()
é uma função que eu sempre chamo para imprimir algumas coisas predefinidas.s
precisa apoiar:
report("abc"); // ok
report("abc"<<100); // == report("abc100")
Além de qualquer saída print (), nada mais deve ser impresso. A exceção será capturada pelo chamador e impressa lá.
Acho difícil oferecer suporte a << na macro acima.
P.S.report () é uma macro já usada em todos os lugares da minha base de código e eu só quero mudar seu comportamento. Chamadas como report ("abc" << 100); tem que ser suportado. defina-a como uma função e adicione ';' no final, não parece apropriado.