C2666: Visual Studio не может выбрать подходящую перегрузку функции

#c

#c

Вопрос:

У меня есть 2 объявления

 void log::Category::Log(bool,const log::Priority amp;,const char *,...) 
void log::Category::Log(const log::Priority amp;,const char *,...)
 

затем я вызываю

 m_log.Log(log::Priority::PRI_DEBUG, "%s", pszStr);
 

log::Priority есть enum .

Почему компилятор соответствует обоим?

Комментарии:

1. Каковы полные сигнатуры функций каждого (где вы написали ... )? И какова точная ошибка компилятора?

2. Что такое log::Priority ? Это класс с (неявным) конструктором, который принимает const char * параметр?

3. Что такое log::Priority::PRI_DEBUG ?

4. @CoryKramer, ... означает Log , что это переменная функция. Ошибка C2666, и в ней говорится, что он не может решить, какую функцию выбрать.

5. Этот пример неполный, поэтому невозможно понять, почему он не работает. Мне кажется, все в порядке.