Re[10]: Вывод типа шаблонного параметра функции
От: rg45 СССР  
Дата: 20.03.20 08:23
Оценка: 12 (1)
Здравствуйте, andyp, Вы писали:

A>Ну да У std::function есть конструктор, жрущий invokable. Типы аргументов оно само должно вывести при инстанциировании. Остается проверить тип, возвращаемый функцией. Я немного подредактировал предыдущий ответ пока ты отвечал.


Да, эта идея мне нравится. Получается органично и компактно:

http://coliru.stacked-crooked.com/a/e397bfcb155981b0

template <typename T>
using is_predicate = std::is_same<bool, std::decay_t<typename decltype(std::function(std::declval<T>()))::result_type>>;


Не очень привычна пока еще эта фишка, когда параметры шаблона класса выводятся по фактическим параметрам конструктора. Будем надеяться, что подобные конструкции не будут вызывать трудностей у компиляторов.
--
Справедливость выше закона. А человечность выше справедливости.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.