Qual è il modo più semplice per stampare un pacchetto di parametri, separati da virgole, utilizzando std::ostream
?Qual è il modo più semplice per stampare un pacchetto di parametri variadic usando std :: ostream?
Esempio:
template<typename... Args>
void doPrint(std::ostream& out, Args... args){
out << args...; // WRONG! What to write here?
}
// Usage:
int main(){
doPrint(std::cout,34,"bla",15); // Should print: 34,bla,15
}
Nota: Si può supporre che un corrispondente overload dell'operatore <<
è disponibile per tutti i tipi di parametro confezione.
In C++ 17, dovresti dire '(out << ... <<< args);'. –
Nota: Questo non è un duplicato - 'foo << X << Y;' generalmente non è uguale a 'foo << X; foo << Y; 'specialmente quando' foo' ha effetti collaterali come aprire un file su disco. – MSalters
@MSalters anche, 'foo << X << Y' non specifica l'ordine di valutazione di' X' e 'Y' (prima di C++ 17, cioè) –