Не уверен, правильно ли сформулирован заголовок, или если есть лучший способ сказать это, но я думаю, что все в порядке.
Во всяком случае, я понимаю следующее:
a.b("a", "b", "c", foo);
Где "foo" - это функция, определенная в другом месте, которая не принимает аргументов, просто приведет к выполнению функции a.b() с указанными выше параметрами. Параметр "foo" затем можно вызвать внутри функции a.b() как просто "foo()". Другими словами, я понимаю, что вышеупомянутый вызов использует указатель функции в качестве аргумента в функции a.b в качестве параметра.
Хорошо, теперь вот что я пытаюсь сделать...
Я хочу иметь возможность сделать что-то похожее на предыдущее, за исключением того, что я хочу, чтобы foo имел paramater, переданный в этом аргументе следующим образом:
a.b("a", "b", "c", foo("bar"));
Теперь вот проблема. Это буквально приведет к параметрам "a", "b", "c" и "сильному" результату использования foo ( "bar" ). Я не хочу этого. Я хочу, чтобы foo ( "bar" ) буквально передавался так, чтобы в функции a.b, которая будет выглядеть так (как заголовок):
a.b(first, second, third, fourth);
Может ссылаться и вызывать четвертый параметр как:
fourth();
Даже если "четвертый" имеет в себе аргумент. Я не могу найти способ решить эту проблему, любой совет?
Спасибо!