używam ROOT bibliotek C++ (root.cern.ch) dzienne i został przeglądając źródła kiedy natknąłem tej deklaracji funkcji:Proszę mi pomóc zrozumieć tę deklarację parametru C++ z argumentem
TString TString::Format(const char *va_(fmt), ...)
{
//etc.
Może znaleźć here. Nie mam pojęcia, w jaki sposób const char *
może mieć w nazwie argument lub nawias. Wyrażenie va_(fmt)
jest później używane jako proste const char *
, mimo że wygląda jak wywołanie funkcji lub konstruktora. Początkowo myślałem, że ma to coś wspólnego ze zmienną listą argumentów, co również było dla mnie nowością, ale czytanie dokumentacji na stdarg.h nie pomagało w ogóle na to pytanie.
Jest bardzo trudno google o pomoc, ponieważ nie jestem naprawdę pewien, jak to nazwać. Deklaracja z argumentem? To nie daje żadnych dobrych wyników.
Kiedyś myślałem, że znam C++, ale co tu się dzieje? Cała pomoc zostanie doceniona.
Domyślam się, że jest po prostu 'va_' makro. Prawdopodobnie taki, który nie robi niczego poza rozwinięciem do swojego parametru. –