Logical Struct Reference

## Description

A Logical type is representing a boolean value while keeping track of the type used to generate those boolean.

Requirements

A type T satisfies Logical if it refines Regular, is convertible to bool and if :

• T::value_type evaluates to a Vectorizable type that represent the original type used to generate this instance of T.
• T is constructible from any type convertible to bool
• For any a of type T and any u of any type convertible to bool, a = u is a valid expression of Logical type
• For any a of type T, !a is a valid expression of Logical type
• For any a of type T, ~a is a valid expression of Logical type
• For any a and b of type T, a && b is a valid expression of Logical type
• For any a and b of type T, a || b is a valid expression of Logical type
Example
• boost::simd::logical<short>