cpp/types/is swappable

@1@ If the expressions and are both well-formed in unevaluated context after (see ), provides the member constant  equal. Otherwise, is. Access checks are performed as if from a context unrelated to either type. @2@ If is not a referenceable type (i.e., possibly cv-qualified  or a function type with a cv-qualifier-seq or a ref-qualifier), provides a member constant  equal to. Otherwise, provides a member constant equal to. @3@ Same as, but evaluations of both expressions from are known not to throw exceptions. @4@ Same as, but uses.