Допустим, я хочу только вызвать одну функцию в моем коде: func(), но в зависимости от того, какое значение я ей даю, пусть это будет ПРЯМОЙ к правильной «версии» этой функции?Как вызвать функцию на основе входного значения?
Я знаю, что это можно было бы сделать с операторами if-statements/switch-statements, но тогда было бы (неэффективно) проверять, какое значение было передано. Я надеялся, что есть готовый способ сделать это?
Возможно ли сделать это как можно эффективнее?
func(3)
выполнит третью версию FUNC()
func[1]{
cout "One";
}
func[2]{
cout "Two";
}
func[3]{
cout "Three";
}
Если вы называете свои функции 'func1',' func2' и 'func3' , вы можете использовать препроцессор: '#define func (x) funC## x()'. Я уверен, что есть больше возможностей C++ - ey, но я не эксперт по этой теме, боюсь. –
Хотелось бы, чтобы вы использовали пример, который не заставил всех неверно истолковать ваш вопрос. – paddy
Принимаете ли вы свой вход от внешнего источника или он известен во время компиляции? Это может повлиять на полученные ответы. –