Wenn es möglich ist, möchte ich ein Makro definieren, das die Anzahl der Argumente in der Funktionsvorlage ARGS_COUNT annimmt und eine Vorlage erstellen, in der alle Argumenttypen aufgezählt werden und deren Ausgabe ein allgemeiner Typ ist.
Zum Beispiel, wenn es definiert ist als
Code: Select all
TEMPLATE_COMMON_FLOAT(N) /* ...definition...*/
dann
Code: Select all
TEMPLATE_COMMON_FLOAT(4)
foo(F0 a, F1 b, F2 c, F3 d) { /*...*/ }
sollte erweitert werden zu
Code: Select all
template 
requires std::is_std::floating_point_v && std::is_std::floating_point_v && std::is_std::floating_point_v && std::is_std::floating_point_v
std::common_type_t foo(F0 a, F1 b, F2 c, F3 d) { /*...*/ }
Ich möchte das, da ich manchmal auf Fi verweisen möchte, anstatt die Funktionsdefinition mit std::floating_point auto aufzublähen und danach einen Decltypezu erstellen.