Я ежедневно использую библиотеки ROOT C ++ (root.cern.ch) и просматривал источник, когда наткнулся на объявление этой функции:
TString TString::Format(const char *va_(fmt), ...)
{
//etc.
Его можно найти здесь .
Я не понимаю, как у const char *
может быть аргумент или скобка в его имени.Выражение va_(fmt)
позже используется как простой const char *
, даже если оно выглядит как вызов функции или конструктор.Сначала я подумал, что это как-то связано со списком аргументов переменных, что также было для меня новым, но чтение документации по stdarg.h вообще не помогло с этим вопросом.
Очень трудноГугл за помощью, так как я не совсем уверен, как это назвать.Объявление с аргументом?Это не дает хороших результатов.
Раньше я думал, что знаю C ++, но что здесь происходит?Будем благодарны за любую помощь.