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.

questionAnswers(1)

yourAnswerToTheQuestion