Здравствуйте, Максим, Вы писали:
М>Сейчас читаю книгу C++ Templates: The Complete Guide (2nd Edition) by David Vandevoorde, Nicolai M. Josuttis and Douglas Gregor https://www.cppstories.com/2018/05/tmplbook2nd-review/
книга классная. Рекомендую.
М>Другие методы, по моим ощущениям (например std::result_of/std::invoke_result или noexcept operator), можно реализовать только на уровне компилятора.
https://en.cppreference.com/w/cpp/types/result_of
часть Possible implementation
М>Как думаете, более глубокое изучение функциональных парадигм и языков (haskell, ocaml или что-то подобное) поможет в этом? Там все таки система типов гораздо серьезней проработана... Или пустое это?
кмк — пустое. Моё мнение, что любую абстракцию надо понимать на частных примерах. Вот шаблоны — частный пример функциональщины. Логично начать с них. Там хотя бы сразу можно увидеть практическое применение.