Class template Dune::XT::Common::is_self¶
Inherits from std::false_type.
-
template<class Self, class ...Args>
class Dune::XT::Common::is_self : public std::false_type¶ Trait whose value is true iff Args is a single argument that, ignoring cv- and reference-qualifiers, is Self.
template <class… Args> explicit C(Args&&… args);
This is used to constrain perfect-forwarding constructors of the form
Such a constructor is a better match than the copy/move constructor for non-const lvalues of type C and would therefore silently hijack copy construction. Guarding it with require_not_self_t disables the forwarding constructor exactly in the copy/move case (see there for the recommended spelling).