Skip to main content

generic_callable Concept

Concept satisfied by a callable object whose call operator is not a single non-template member function. More...

Definition​

template <typename Callable_T>
concept micro_os_plus::micro_test_plus::detail::generic_callable = std::is_class_v<std::decay_t<Callable_T>>
          && (!requires { &std::decay_t<Callable_T>::operator(); })

Description​

Concept satisfied by a callable object whose call operator is not a single non-template member function.

The generic lambdas ([] (auto& t) { ... }), the function objects with a template or an overloaded call operator, and the classes without a call operator. To find out whether such an object can be invoked, the compiler must instantiate its body to deduce the return type, and an error in the body becomes an error of the check, with its own long trace; so the bodies of the tests and of the suites that satisfy this concept are not checked for invocability, and an error is reported where the body is invoked.

Template Parameters
Callable_T

The type of the callable object.

Definition at line 1176 of file test.h.

  template<typename Callable_T>
  concept generic_callable = std::is_class_v<std::decay_t<Callable_T>>
  && (!requires { &std::decay_t<Callable_T>::operator(); })

Generated via doxygen2docusaurus 2.2.8 by Doxygen 1.18.0.