Yeah, references can't be passed for some obscure C++ reason either related to threads to va_args. You can however pass pointers if you need to, though passing by value is the right approach in this case I think.