InvokeDomainInterfaceGetter
Перейти к навигации
Перейти к поиску
Параметры шаблона
Параметры
Возвращаемое значение: Значение выходного параметра с индексом iReturnIndex в результате вызова функтора fn.
Возможные исключения
См. также
template <std::size_t iReturnIndex, class Callable, class ... Args>
auto InvokeDomainInterfaceGetter(Callable&& fn, Args&&...args)
-> typename invoke_interface_return_type<iReturnIndex, Callable>::type; //1
template <class Callable, class...Args>
auto InvokeDomainInterfaceGetter(Callable&& fn, Args&&...args)
-> typename invoke_interface_return_type<Chusov::function_traits<Callable>::number_of_parameters - 1, Callable>::type; //2
Вызывает указанный Callable объект, возвращающий domain_response_code_t, и, если объект возвращает код успешного завершения, возвращает указанный индексом выходной параметр через return
- иначе генерирует исключение типа drc_exception.
- Возвращает значение выходного параметра с индексом 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 вставляется указатель или ссылка на объект, который затем возвращается функцией InvokeDomainInterfaceGetter. |
fn | Функциональный объект типа Callable, который вызывается над аргументами args.... | |
...args | Набор входных аргументов, над которыми вызывается Callable-объект fn. Если объект fn является нестатическим методом класса, то первым аргуметом должен являтся экземпляр этого класса, над которым вызывается метод. В этом случае индекс iReturnIndex не учитывает первый параметр. |
drc_exception | Реализует исключение C++, соответствующее коду ошибок domain_response_code_t. |
InvokeDomainInterface | Вызывает интерфейсный метод, возвращающий код domain_response_code_t, с указанным набором аргументов и, если интерфейсный метод возвращает код ошибочного завершения, генерирует исключение drc_exception. |
InvokeDomainInterfaceSetter | Вызывает интерфейсный метод, возвращающий код domain_response_code_t, с указанным набором аргументов и, если интерфейсный метод возвращает код ошибочного завершения, генерирует исключение drc_exception. |
InvokeInterfaceGetter | Вызывает указанный Callable объект, возвращающий return_code_t, и, если объект возвращает код успешного завершения, возвращает указанный индексом выходной параметр через return - иначе генерирует исключение типа Chusov::Exceptions::ChsvCodeException. |
Chusov::function_traits | Метафункция, возвращающая сведения о прототипе Callable-объекта. |
Пример
std::uint32_t GetPriority() const
{
return InvokeDomainInterfaceGetter(&INode::GetPriority, m_pNode);
}