Вызывает указанный Callable объект, возвращающий return_code_t, и, если объект возвращает код успешного завершения, возвращает указанный индексом выходной параметр через return
- иначе генерирует исключение типа Chusov::Exceptions::ChsvCodeException.
- Возвращает значение выходного параметра с индексом iReturnIndex в списке параметров объекта _Callable в результате вызова fn.
- Возвращает значение последнего параметра в списке параметров объекта _Callable в результате вызова fn.
Параметры шаблона
iReturnIndex | Задает индекс выходного параметра списке параметров объекта fn. Если fn - метод класса, то индекс не должен учитывать первый скрытый параметр this . |
_Callable | Тип Callable-объекта, который вызывается функцией. Прототип объекта должен позволять однозначно выполнить вызов объекта с аргументами std::forward<_Args>(args)... , между которыми, в позицию с индексом iReturnIndex (iReturnIndex + 1, если _Callable является методом класса) вставлен указатель или lvalue-ссылка на объект действительного типа typename invoke_interface_return_type<iReturnIndex, _Callable>::type . |
_Args... | Тип входных аргументов, над которыми вызывается Callable-объект fn. При вызове fn между этими аргументами, в зависимости от типа _Callable вставляется указатель или ссылка на объект, который затем возвращается функцией InvokeInterfaceGetter. |
Параметры
| fn | Функциональный объект типа _Callable, который вызывается над аргументами args.... |
| ...args | Набор входных аргументов, над которыми вызывается Callable-объект fn. Если объект fn является нестатическим методом класса, то первым аргуметом должен являтся экземпляр этого класса, над которым вызывается метод. В этом случае индекс iReturnIndex не учитывает первый параметр. |
Возвращаемое значение:Значение выходного параметра с индексом iReturnIndex в результате вызова функтора fn.
Возможные исключения
См. также
InvokeInterface | Вызывает интерфейсный метод, возвращающий код return_code_t, с указанным набором аргументов и, если интерфейсный метод возвращает код ошибочного завершения, генерирует исключение Chusov::Exceptions::ChsvCodeException. |
InvokeInterfaceSetter | Вызывает интерфейсный метод, возвращающий код return_code_t, с указанным набором аргументов и, если интерфейсный метод возвращает код ошибочного завершения, генерирует исключение Chusov::Exceptions::ChsvCodeException. |
InvokeDomainInterfaceGetter | Вызывает указанный Callable объект, возвращающий domain_response_code_t, и, если объект возвращает код успешного завершения, возвращает указанный индексом выходной параметр через return - иначе генерирует исключение типа drc_exception. |
Chusov::function_traits | Метафункция, возвращающая сведения о прототипе Callable-объекта. |
Пример