Simple-Utility v2.3.1
Loading...
Searching...
No Matches
operators.hpp File Reference
#include <concepts>
Include dependency graph for operators.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  sl
 
namespace  sl::concepts
 

Concepts

concept  sl::concepts::right_shiftable_with
 Determines whether two types can be used in operator >> statements.
 
concept  sl::concepts::right_shiftable_with_r
 Determines whether two types can be used in operator >> statements and checks if the return type is convertible to the expected.
 
concept  sl::concepts::right_shiftable
 Determines whether the given type can be used on both sides of operator >> statements.
 
concept  sl::concepts::right_shiftable_r
 Determines whether the given type can be used on both sides of operator >> statements and checks if the return type is convertible to the expected.
 
concept  sl::concepts::left_shiftable_with
 Determines whether two types can be used in operator << statements.
 
concept  sl::concepts::left_shiftable_with_r
 Determines whether two types can be used in operator << statements and checks if the return type is convertible to the expected.
 
concept  sl::concepts::left_shiftable
 Determines whether the given type can be used on both sides of operator << statements.
 
concept  sl::concepts::left_shiftable_r
 Determines whether the given type can be used on both sides of operator << statements and checks if the return type is convertible to the expected.
 
concept  sl::concepts::bidirectional_shiftable_with
 Determines whether two types can be used in operator >> and operator << statements.
 
concept  sl::concepts::bidirectional_shiftable_with_r
 Determines whether two types can be used in operator >> and operator << statements and checks if the return type is convertible to the expected.
 
concept  sl::concepts::bidirectional_shiftable
 Determines whether the given type can be used on both sides of operator << and operator >> statements.
 
concept  sl::concepts::bidirectional_shiftable_r
 Determines whether the given type can be used on both sides of operator >> and operator << statements and checks if the return type is convertible to the expected.
 
concept  sl::concepts::right_shift_assignable_with
 Determines whether two types can be used in operator >>= statements.
 
concept  sl::concepts::right_shift_assignable_with_r
 Determines whether two types can be used in operator >>= statements and checks if the return type is convertible to the expected.
 
concept  sl::concepts::right_shift_assignable
 Determines whether the given type can be used on both sides of operator >>= statements.
 
concept  sl::concepts::right_shift_assignable_r
 Determines whether the given type can be used on both sides of operator >>= statements and checks if the return type is convertible to the expected.
 
concept  sl::concepts::left_shift_assignable_with
 Determines whether two types can be used in operator <<= statements.
 
concept  sl::concepts::left_shift_assignable_with_r
 Determines whether two types can be used in operator <<= statements and checks if the return type is convertible to the expected.
 
concept  sl::concepts::left_shift_assignable
 Determines whether the given type can be used on both sides of operator <<= statements.
 
concept  sl::concepts::left_shift_assignable_r
 Determines whether the given type can be used on both sides of operator <<= statements and checks if the return type is convertible to the expected.
 
concept  sl::concepts::bidirectional_shift_assignable_with
 Determines whether two types can be used in operator >>= and operator <<= statements.
 
concept  sl::concepts::bidirectional_shift_assignable_with_r
 Determines whether two types can be used in operator >>= and operator <<= statements and checks if the return type is convertible to the expected.
 
concept  sl::concepts::bidirectional_shift_assignable
 Determines whether the given type can be used on both sides of operator <<= and operator >>= statements.
 
concept  sl::concepts::bidirectional_shift_assignable_r
 Determines whether the given type can be used on both sides of operator <<= and operator >>= statements and checks if the return type is convertible to the expected.
 
concept  sl::concepts::fully_shiftable_with
 Determines whether two types can be used in operator <<, >>, <<= and >>= statements.
 
concept  sl::concepts::fully_shiftable_with_r
 Determines whether two types can be used in operator <<, >>, <<= and >>= statements and checks if the return types are convertible to the expected ones.
 
concept  sl::concepts::fully_shiftable
 Determines whether the given type can be used on both sides of operator <<, >>, <<= and >>= statements.
 
concept  sl::concepts::fully_shiftable_r
 Determines whether the given type can be used on both sides of operator <<, >>, <<= and >>= statements and checks if the return types are convertible to the expected ones.
 
concept  sl::concepts::complemented
 Determines whether a type can be used in operator ~ expression.
 
concept  sl::concepts::complemented_r
 Determines whether a type can be used in operator ~ expression and if the return type is convertible to the expected one.
 
concept  sl::concepts::conjunctive_with
 Determines whether two types can be used in operator & expressions.
 
concept  sl::concepts::conjunctive_with_r
 Determines whether two types can be used in operator & expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::conjunctive
 Determines whether a type can be used on both sides of operator & expressions.
 
concept  sl::concepts::conjunctive_r
 Determines whether a type can be used on both sides of operator & expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::conjunctive_assign_with
 Determines whether two types can be used in operator &= expressions.
 
concept  sl::concepts::conjunctive_assign_with_r
 Determines whether two types can be used in operator &= expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::conjunctive_assign
 Determines whether a type can be used on both sides of operator &= expressions.
 
concept  sl::concepts::conjunctive_assign_r
 Determines whether a type can be used on both sides of operator &= expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::disjunctive_with
 Determines whether two types can be used in operator | expressions.
 
concept  sl::concepts::disjunctive_with_r
 Determines whether two types can be used in operator | expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::disjunctive
 Determines whether a type can be used on both sides of operator | expressions.
 
concept  sl::concepts::disjunctive_r
 Determines whether a type can be used on both sides of operator | expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::disjunctive_assign_with
 Determines whether two types can be used in operator |= expressions.
 
concept  sl::concepts::disjunctive_assign_with_r
 Determines whether two types can be used in operator |= expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::disjunctive_assign
 Determines whether a type can be used on both sides of operator |= expressions.
 
concept  sl::concepts::disjunctive_assign_r
 Determines whether a type can be used on both sides of operator |= expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::exclusive_disjunctive_with
 Determines whether two types can be used in operator ^ expressions.
 
concept  sl::concepts::exclusive_disjunctive_with_r
 Determines whether two types can be used in operator ^ expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::exclusive_disjunctive
 Determines whether a type can be used on both sides of operator ^ expressions.
 
concept  sl::concepts::exclusive_disjunctive_r
 Determines whether a type can be used on both sides of operator ^ expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::exclusive_disjunctive_assign_with
 Determines whether two types can be used in operator ^= expressions.
 
concept  sl::concepts::exclusive_disjunctive_assign_with_r
 Determines whether two types can be used in operator ^= expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::exclusive_disjunctive_assign
 Determines whether a type can be used on both sides of operator ^= expressions.
 
concept  sl::concepts::exclusive_disjunctive_assign_r
 Determines whether a type can be used on both sides of operator ^= expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::logically_combinable_with
 Determines whether two types can be used in operator &, | amd ^ expressions.
 
concept  sl::concepts::logically_combinable_with_r
 Determines whether two types can be used in operator &, | amd ^ expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::logically_combinable
 Determines whether a type can be used on both sides of operator &, | and ^ expressions.
 
concept  sl::concepts::logically_combinable_r
 Determines whether a type can be used on both sides of operator &, | and ^ expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::logically_assignable_with
 Determines whether two types can be used in operator &=, |= and ^= expressions.
 
concept  sl::concepts::logically_assignable_with_r
 Determines whether two types can be used in operator &=, |= and ^= expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::logically_assignable
 Determines whether a type can be used on both sides of operator &=, |= and ^= expressions.
 
concept  sl::concepts::logically_assignable_r
 Determines whether a type can be used on both sides of operator &=, |= and ^= expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::fully_logical_with
 Determines whether two types can be used in operator &, |, ^, &=, |=, ^= and ~ expressions.
 
concept  sl::concepts::fully_logical_with_r
 Determines whether two types can be used in operator &, |, ^, &=, |=, ^= and ~ expressions and if the return types are convertible to the expected ones.
 
concept  sl::concepts::fully_logical
 Determines whether a type can be used on both sides of operator &, |, ^, &=, |=, ^= and ~ expressions.
 
concept  sl::concepts::fully_logical_r
 Determines whether a type can be used on both sides of operator &, |, ^, &=, |=, ^= and ~ expressions and if the return types are convertible to the expected ones.
 
concept  sl::concepts::invertible
 
concept  sl::concepts::invertible_r
 
concept  sl::concepts::dereferencable
 Determines whether a type can be used in unary operator * expressions.
 
concept  sl::concepts::dereferencable_r
 Determines whether a type can be used in unary operator * expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::arrow_dereferencable
 Determines whether a type can be used in operator -> expressions.
 
concept  sl::concepts::arrow_dereferencable_r
 Determines whether a type can be used in operator -> expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::index_dereferencable
 Determines whether a type can be used in operator [] expressions.
 
concept  sl::concepts::index_dereferencable_r
 Determines whether a type can be used in operator -> expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::negate
 Determines whether a type can be used in operator - expression.
 
concept  sl::concepts::negate_r
 Determines whether a type can be used in operator - expression and if the return type is convertible to the expected one.
 
concept  sl::concepts::plus_with
 Determines whether two types can be used in operator + expressions.
 
concept  sl::concepts::plus_with_r
 Determines whether two types can be used in operator + expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::plus
 Determines whether a type can be used on both sides of operator + expressions.
 
concept  sl::concepts::plus_r
 Determines whether a type can be used on both sides of operator + expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::plus_assign_with
 Determines whether two types can be used in operator += expressions.
 
concept  sl::concepts::plus_assign_with_r
 Determines whether two types can be used in operator += expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::plus_assign
 Determines whether a type can be used on both sides of operator += expressions.
 
concept  sl::concepts::plus_assign_r
 Determines whether a type can be used on both sides of operator += expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::minus_with
 Determines whether two types can be used in operator - expressions.
 
concept  sl::concepts::minus_with_r
 Determines whether two types can be used in operator - expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::minus
 Determines whether a type can be used on both sides of operator - expressions.
 
concept  sl::concepts::minus_r
 Determines whether a type can be used on both sides of operator - expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::minus_assign_with
 Determines whether two types can be used in operator -= expressions.
 
concept  sl::concepts::minus_assign_with_r
 Determines whether two types can be used in operator -= expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::minus_assign
 Determines whether a type can be used on both sides of operator -= expressions.
 
concept  sl::concepts::minus_assign_r
 Determines whether a type can be used on both sides of operator -= expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::multiplies_with
 Determines whether two types can be used in operator * expressions.
 
concept  sl::concepts::multiplies_with_r
 Determines whether two types can be used in operator * expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::multiplies
 Determines whether a type can be used on both sides of operator * expressions.
 
concept  sl::concepts::multiplies_r
 Determines whether a type can be used on both sides of operator * expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::multiplies_assign_with
 Determines whether two types can be used in operator *= expressions.
 
concept  sl::concepts::multiplies_assign_with_r
 Determines whether two types can be used in operator *= expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::multiplies_assign
 Determines whether a type can be used on both sides of operator *= expressions.
 
concept  sl::concepts::multiplies_assign_r
 Determines whether a type can be used on both sides of operator *= expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::divides_with
 Determines whether two types can be used in operator / expressions.
 
concept  sl::concepts::divides_with_r
 Determines whether two types can be used in operator / expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::divides
 Determines whether a type can be used on both sides of operator / expressions.
 
concept  sl::concepts::divides_r
 Determines whether a type can be used on both sides of operator / expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::divides_assign_with
 Determines whether two types can be used in operator /= expressions.
 
concept  sl::concepts::divides_assign_with_r
 Determines whether two types can be used in operator /= expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::divides_assign
 Determines whether a type can be used on both sides of operator /= expressions.
 
concept  sl::concepts::divides_assign_r
 Determines whether a type can be used on both sides of operator /= expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::modulus_with
 Determines whether two types can be used in operator % expressions.
 
concept  sl::concepts::modulus_with_r
 Determines whether two types can be used in operator % expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::modulus
 Determines whether a type can be used on both sides of operator % expressions.
 
concept  sl::concepts::modulus_r
 Determines whether a type can be used on both sides of operator % expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::modulus_assign_with
 Determines whether two types can be used in operator %= expressions.
 
concept  sl::concepts::modulus_assign_with_r
 Determines whether two types can be used in operator %= expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::modulus_assign
 Determines whether a type can be used on both sides of operator %= expressions.
 
concept  sl::concepts::modulus_assign_r
 Determines whether a type can be used on both sides of operator %= expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::arithmetically_combinable_with
 Determines whether two types can be used in operator +, -, * and / expressions.
 
concept  sl::concepts::arithmetically_combinable_with_r
 Determines whether two types can be used in operator +, -, * and / expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::arithmetically_combinable
 Determines whether a type can be used on both sides of operator +, -, * and / expressions.
 
concept  sl::concepts::arithmetically_combinable_r
 Determines whether a type can be used on both sides of operator +, -, * and / expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::arithmetically_assignable_with
 Determines whether two types can be used in operator +=, -=, *= and /= expressions.
 
concept  sl::concepts::arithmetically_assignable_with_r
 Determines whether two types can be used in operator +=, -=, *= and /= expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::arithmetically_assignable
 Determines whether a type can be used on both sides of operator +=, -=, *= and /= expressions.
 
concept  sl::concepts::arithmetically_assignable_r
 Determines whether a type can be used on both sides of operator +=, -=, *= and /= expressions and if the return type is convertible to the expected one.
 
concept  sl::concepts::fully_arithmetical_with
 Determines whether two types can be used in operator +, -, *, /, +=, -=, *=, /= and unary - expressions.
 
concept  sl::concepts::fully_arithmetical_with_r
 Determines whether two types can be used in operator +, -, *, /, +=, -=, *=, /= and unary - expressions and if the return types are convertible to the expected ones.
 
concept  sl::concepts::fully_arithmetical
 Determines whether a type can be used on both sides of operator +, -, *, /, +=, -=, *=, /= and unary - expressions.
 
concept  sl::concepts::fully_arithmetical_r
 Determines whether a type can be used on both sides of operator +, -, *, /, +=, -=, *=, /= and unary - expressions and if the return types are convertible to the expected ones.