InvokeInterfaceGetter
Перейти к навигации
Перейти к поиску
Параметры шаблона
Параметры
Возвращаемое значение: Значение выходного параметра с индексом iReturnIndex в результате вызова функтора fn.
Возможные исключения
См. также
template <std::size_t iReturnIndex, class _Callable, class ... _Args>
auto InvokeInterfaceGetter(_Callable&& fn, _Args&&...args)
-> typename invoke_interface_return_type<iReturnIndex, _Callable>::type; //1
template <class _Callable, class ... _Args>
auto InvokeInterfaceGetter(_Callable&& fn, _Args&&...args)
-> typename invoke_interface_return_type<Chusov::function_traits<_Callable>::number_of_parameters - 1, _Callable>::type; //2
Вызывает указанный 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 не учитывает первый параметр. |
Chusov::Exceptions::ChsvCodeException | Исключение, соответствующее коду ошибочного завершения, если последний возвращается объектом 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-объекта. |
Пример
NodeServerType ndType = InvokeInterfaceGetter(&INode::GetServerType, pNode);
IAllocator* pAlloc = InvokeInterfaceGetter(CreateDefaultAllocator);