Главная » C++ » Как вызывать объект функции по-разному, в зависимости от его арности (или другой информации, известной во время компиляции)?
Как вызывать объект функции по-разному, в зависимости от его арности (или другой информации, известной во время компиляции)?
В шаблоне функции я бы хотел вызывать функцию или объект функции по-разному, в зависимости от его арности (сколько аргументов требуется). В псевдокоде:
if arity(f) == 1:
f(x)
if arity(f) == 2:
f(x, y)
if arity(f) == 3:
f(x, y, z)
Как это можно сделать в C ++?
редактировать Чтобы уточнить сложность: f(x, y, z) не скомпилируется, если f принимает только 2 аргумента и наоборот, f(x, y) не скомпилируется когда f нужно 3 аргумента.