Я в настоящее время есть 2 перегруженных функции:C++ va_list перегрузка Функции
void log(const char* format, ...);
void log(const string& message);
и я хочу, чтобы в случае этого вызова: log("hello");
строки версия будет называться, или другими словами, первая перегрузка должна быть вызвана только в случае 2 аргументов или более.
Я думал об этом:
template<typename T>
void log(const char* format, T first, ...);
, но в этом случае я буду иметь проблемы с использованием va_list
правильно в коде.
Есть ли какие-либо другие решения, которые могут быть пропавшими без вести?
EDIT: Я думал о проверке размера va_list
внутри функции, и перенаправлять в случае 0, но, насколько я понял, что это невозможно, чтобы получить размер va_list
.
вы можете использовать C++ 11? – WaeCo
@WaeCo да, я могу – Vladp