A very detailled and complete article to start playing with template predicates!
by Andrzej Krzemieński
From the article:
In this post we will see how to define a type trait or a type predicate or a meta-function that would allow us to check at compile time whether a type exposes an interface that we need. That is, we want to check if a given type T has:
- nested typename result_type,
- static member function set_limit that takes one argument of type int,
- member function get_result that returns type const result_type& and that is declared not to throw exceptions...