Пожалуйста, помогите мне понять это объявление параметра C++ с аргументом

Я ежедневно использую библиотеки ROOT C++ (root.cern.ch) и просматривал исходный код, когда наткнулся на это объявление функции:

TString TString::Format(const char *va_(fmt), ...)
{
    //etc.

Его можно найти здесь.

Я не понимаю, как const char *может иметь аргумент или скобку в своем имени. Выражение va_(fmt)позже используется как простое const char *, хотя выглядит как вызов функции или конструктор. Сначала я подумал, что это как-то связано со списком переменных аргументов, который тоже был для меня новым, но чтение документации по stdarg.h совершенно не помогло в этом вопросе.

Очень сложно найти помощь в Google, так как я не совсем уверен, как это назвать. Объявление с аргументом? Это не дает хороших результатов.

Раньше я думал, что знаю C++, но что здесь происходит? Вся помощь будет оценена.

6
задан Simon 20 March 2012 в 14:30
поделиться