Qx v0.5.7
Qt Extensions Library
Loading...
Searching...
No Matches
qx-concepts.h File Reference

The qx-concepts header file provides a library of general purpose concepts as an extension of the standard concepts library. More...

#include <utility>
#include <iterator>
#include <type_traits>
#include <QHash>
#include <QMap>
Include dependency graph for qx-concepts.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  Qx
 The Qx namespace is the main namespace through which all non-global functionality of the Qx library is accessed.
 

Concepts

concept  Qx::defines_assign_for_s
 Specifies that a type defines a simple assignment operator for another type (with strict return).
 
concept  Qx::defines_assign_for
 Specifies that a type defines a simple assignment operator for another type.
 
concept  Qx::defines_assign_s
 Specifies that a type defines a simple assignment operator for itself (with strict return).
 
concept  Qx::defines_assign
 Specifies that a type defines a simple assignment operator for itself.
 
concept  Qx::defines_add_assign_for_s
 Specifies that a type defines an addition assignment operator for another type (with strict return).
 
concept  Qx::defines_add_assign_for
 Specifies that a type defines an addition assignment operator for another type.
 
concept  Qx::defines_add_assign_s
 Specifies that a type defines an addition assignment operator for itself (with strict return).
 
concept  Qx::defines_add_assign
 Specifies that a type defines an addition assignment operator for itself.
 
concept  Qx::defines_sub_assign_for_s
 Specifies that a type defines a subtraction assignment operator for another type (with strict return).
 
concept  Qx::defines_sub_assign_for
 Specifies that a type defines a subtraction assignment operator for another type.
 
concept  Qx::defines_sub_assign_s
 Specifies that a type defines a subtraction assignment operator for itself (with strict return).
 
concept  Qx::defines_sub_assign
 Specifies that a type defines a subtraction assignment operator for itself.
 
concept  Qx::defines_mult_assign_for_s
 Specifies that a type defines a multiplication assignment operator for another type (with strict return).
 
concept  Qx::defines_mult_assign_for
 Specifies that a type defines a multiplication assignment operator for another type.
 
concept  Qx::defines_mult_assign_s
 Specifies that a type defines a multiplication assignment operator for itself (with strict return).
 
concept  Qx::defines_mult_assign
 Specifies that a type defines a multiplication assignment operator for itself.
 
concept  Qx::defines_div_assign_for_s
 Specifies that a type defines a division assignment operator for another type (with strict return).
 
concept  Qx::defines_div_assign_for
 Specifies that a type defines a division assignment operator for another type.
 
concept  Qx::defines_div_assign_s
 Specifies that a type defines a division assignment operator for itself (with strict return).
 
concept  Qx::defines_div_assign
 Specifies that a type defines a division assignment operator for itself.
 
concept  Qx::defines_mod_assign_for_s
 Specifies that a type defines a modulo assignment operator for another type (with strict return).
 
concept  Qx::defines_mod_assign_for
 Specifies that a type defines a modulo assignment operator for another type.
 
concept  Qx::defines_mod_assign_s
 Specifies that a type defines a modulo assignment operator for itself (with strict return).
 
concept  Qx::defines_mod_assign
 Specifies that a type defines a modulo assignment operator for itself.
 
concept  Qx::defines_bit_and_assign_for_s
 Specifies that a type defines a bitwise AND assignment operator for another type (with strict return).
 
concept  Qx::defines_bit_and_assign_for
 Specifies that a type defines a bitwise AND assignment operator for another type.
 
concept  Qx::defines_bit_and_assign_s
 Specifies that a type defines a bitwise AND assignment operator for itself (with strict return).
 
concept  Qx::defines_bit_and_assign
 Specifies that a type defines a bitwise AND assignment operator for itself.
 
concept  Qx::defines_bit_or_assign_for_s
 Specifies that a type defines a bitwise OR assignment operator for another type (with strict return).
 
concept  Qx::defines_bit_or_assign_for
 Specifies that a type defines a bitwise OR assignment operator for another type.
 
concept  Qx::defines_bit_or_assign_s
 Specifies that a type defines a bitwise OR assignment operator for itself (with strict return).
 
concept  Qx::defines_bit_or_assign
 Specifies that a type defines a bitwise OR assignment operator for itself.
 
concept  Qx::defines_bit_xor_assign_for_s
 Specifies that a type defines a bitwise XOR assignment operator for another type (with strict return).
 
concept  Qx::defines_bit_xor_assign_for
 Specifies that a type defines a bitwise XOR assignment operator for another type.
 
concept  Qx::defines_bit_xor_assign_s
 Specifies that a type defines a bitwise XOR assignment operator for itself (with strict return).
 
concept  Qx::defines_bit_xor_assign
 Specifies that a type defines a bitwise XOR assignment operator for itself.
 
concept  Qx::defines_left_shift_assign_for_s
 Specifies that a type defines a left shift assignment operator for another type (with strict return).
 
concept  Qx::defines_left_shift_assign_for
 Specifies that a type defines a left shift assignment operator for another type.
 
concept  Qx::defines_left_shift_assign_s
 Specifies that a type defines a left shift assignment operator for itself (with strict return).
 
concept  Qx::defines_left_shift_assign
 Specifies that a type defines a left shift assignment operator for itself.
 
concept  Qx::defines_right_shift_assign_for_s
 Specifies that a type defines a right shift assignment operator for another type (with strict return).
 
concept  Qx::defines_right_shift_assign_for
 Specifies that a type defines a right shift assignment operator for another type.
 
concept  Qx::defines_right_shift_assign_s
 Specifies that a type defines a right shift assignment operator for itself (with strict return).
 
concept  Qx::defines_right_shift_assign
 Specifies that a type defines a right shift assignment operator for itself.
 
concept  Qx::defines_pre_increment_s
 Specifies that a type defines a pre-increment operator (with strict return).
 
concept  Qx::defines_pre_increment
 Specifies that a type defines a pre-increment operator.
 
concept  Qx::defines_pre_decrement_s
 Specifies that a type defines a pre-decrement operator (with strict return).
 
concept  Qx::defines_pre_decrement
 Specifies that a type defines a pre-decrement operator.
 
concept  Qx::defines_post_increment_s
 Specifies that a type defines a post-increment operator (with strict return).
 
concept  Qx::defines_post_increment
 Specifies that a type defines a post-increment operator.
 
concept  Qx::defines_post_decrement_s
 Specifies that a type defines a post-decrement operator (with strict return).
 
concept  Qx::defines_post_decrement
 Specifies that a type defines a post-decrement operator.
 
concept  Qx::defines_negation_s
 Specifies that a type defines a negation operator (with strict return).
 
concept  Qx::defines_negation
 Specifies that a type defines a negation operator.
 
concept  Qx::defines_and_for_s
 Specifies that a type defines a logical AND operator for another type (with strict return).
 
concept  Qx::defines_and_for
 Specifies that a type defines a logical AND operator for another type.
 
concept  Qx::defines_and_s
 Specifies that a type defines a logical AND operator for itself (with strict return). Satisfied if K has a logical AND operator defined for itself that returns bool.
 
concept  Qx::defines_and
 Specifies that a type defines a logical AND operator for itself.
 
concept  Qx::defines_or_for_s
 Specifies that a type defines a logical OR operator for another type (with strict return).
 
concept  Qx::defines_or_for
 Specifies that a type defines a logical OR operator for another type.
 
concept  Qx::defines_or_s
 Specifies that a type defines a logical OR operator for itself (with strict return).
 
concept  Qx::defines_or
 Specifies that a type defines a logical OR operator for itself.
 
concept  Qx::defines_subscript_for_s
 Specifies that a type defines a subscript operator for another type (with strict return).
 
concept  Qx::defines_subscript_for
 Specifies that a type defines a subscript operator for another type.
 
concept  Qx::defines_indirection_s
 Specifies that a type defines an indirection operator (with strict return).
 
concept  Qx::defines_indirection
 Specifies that a type defines an indirection operator.
 
concept  Qx::defines_address_of_s
 Specifies that a type defines an address-of operator (with strict return).
 
concept  Qx::defines_address_of
 Specifies that a type defines an address-of operator.
 
concept  Qx::defines_ptr_to_member_ptr_for_s
 Specifies that a type defines a pointer to member of pointer operator (with strict return).
 
concept  Qx::defines_ptr_to_member_ptr_for
 Specifies that a type defines a pointer to member of pointer operator.
 
concept  Qx::defines_call_for_s
 Specifies that a type defines a call operator for the specified argument types (with strict return).
 
concept  Qx::defines_call_for
 Specifies that a type defines a call operator for the specified argument types.
 
concept  Qx::defines_call_s
 Specifies that a type defines a argumentless call operator (with strict return).
 
concept  Qx::defines_call
 Specifies that a type defines a argumentless call operator.
 
concept  Qx::defines_comma_for_s
 Specifies that a type defines a comma operator for another type (with strict return).
 
concept  Qx::defines_comma_for
 Specifies that a type defines a comma operator for another type.
 
concept  Qx::defines_unary_plus_s
 Specifies that a type defines a unary plus operator (with strict return).
 
concept  Qx::defines_unary_plus
 Specifies that a type defines a unary plus operator.
 
concept  Qx::defines_unary_minus_s
 Specifies that a type defines a unary minus operator (with strict return).
 
concept  Qx::defines_unary_minus
 Specifies that a type defines a unary minus operator.
 
concept  Qx::defines_add_for_s
 Specifies that a type defines an addition operator for another type (with strict return).
 
concept  Qx::defines_add_for
 Specifies that a type defines an addition operator for another type.
 
concept  Qx::defines_add_s
 Specifies that a type defines an addition operator for itself (with strict return).
 
concept  Qx::defines_add
 Specifies that a type defines an addition operator for itself.
 
concept  Qx::defines_sub_for_s
 Specifies that a type defines a subtraction operator for another type (with strict return).
 
concept  Qx::defines_sub_for
 Specifies that a type defines a subtraction operator for another type.
 
concept  Qx::defines_sub_s
 Specifies that a type defines a subtraction operator for itself (with strict return).
 
concept  Qx::defines_sub
 Specifies that a type defines a subtraction operator for itself.
 
concept  Qx::defines_mult_for_s
 Specifies that a type defines a multiplication operator for another type (with strict return).
 
concept  Qx::defines_mult_for
 Specifies that a type defines a multiplication operator for another type.
 
concept  Qx::defines_mult_s
 Specifies that a type defines a multiplication operator for itself (with strict return).
 
concept  Qx::defines_mult
 Specifies that a type defines a multiplication operator for itself.
 
concept  Qx::defines_div_for_s
 Specifies that a type defines a division operator for another type (with strict return).
 
concept  Qx::defines_div_for
 Specifies that a type defines a division operator for another type.
 
concept  Qx::defines_div_s
 Specifies that a type defines a division operator for itself (with strict return).
 
concept  Qx::defines_div
 Specifies that a type defines a division operator for itself.
 
concept  Qx::defines_mod_for_s
 Specifies that a type defines a modulo operator for another type (with strict return).
 
concept  Qx::defines_mod_for
 Specifies that a type defines a modulo operator for another type.
 
concept  Qx::defines_mod_s
 Specifies that a type defines a modulo operator for itself (with strict return).
 
concept  Qx::defines_mod
 Specifies that a type defines a modulo operator for itself.
 
concept  Qx::defines_bit_not_s
 Specifies that a type defines a bitwise NOT operator (with strict return).
 
concept  Qx::defines_bit_not
 Specifies that a type defines a bitwise NOT operator.
 
concept  Qx::defines_bit_and_for_s
 Specifies that a type defines a bitwise AND operator for another type (with strict return).
 
concept  Qx::defines_bit_and_for
 Specifies that a type defines a bitwise AND operator for another type.
 
concept  Qx::defines_bit_and_s
 Specifies that a type defines a bitwise AND operator for itself (with strict return).
 
concept  Qx::defines_bit_and
 Specifies that a type defines a bitwise AND operator for itself.
 
concept  Qx::defines_bit_or_for_s
 Specifies that a type defines a bitwise OR operator for another type (with strict return).
 
concept  Qx::defines_bit_or_for
 Specifies that a type defines a bitwise OR operator for another type.
 
concept  Qx::defines_bit_or_s
 Specifies that a type defines a bitwise OR operator for itself (with strict return).
 
concept  Qx::defines_bit_or
 Specifies that a type defines a bitwise OR operator for itself.
 
concept  Qx::defines_bit_xor_for_s
 Specifies that a type defines a bitwise XOR operator for another type (with strict return).
 
concept  Qx::defines_bit_xor_for
 Specifies that a type defines a bitwise XOR operator for another type.
 
concept  Qx::defines_bit_xor_s
 Specifies that a type defines a bitwise XOR operator for itself (with strict return).
 
concept  Qx::defines_bit_xor
 Specifies that a type defines a bitwise XOR operator for itself.
 
concept  Qx::defines_left_shift_for_s
 Specifies that a type defines a left shift operator for another type (with strict return).
 
concept  Qx::defines_left_shift_for
 Specifies that a type defines a left shift operator for another type.
 
concept  Qx::defines_left_shift_s
 Specifies that a type defines a left shift operator for itself (with strict return).
 
concept  Qx::defines_left_shift
 Specifies that a type defines a left shift operator for itself.
 
concept  Qx::defines_right_shift_for_s
 Specifies that a type defines a right shift operator for another type (with strict return).
 
concept  Qx::defines_right_shift_for
 Specifies that a type defines a right shift operator for another type.
 
concept  Qx::defines_right_shift_s
 Specifies that a type defines a right shift operator for itself (with strict return).
 
concept  Qx::defines_right_shift
 Specifies that a type defines a right shift operator for itself.
 
concept  Qx::defines_equality_for_s
 Specifies that a type defines an equal to operator for another type (with strict return).
 
concept  Qx::defines_equality_for
 Specifies that a type defines an equal to operator for another type.
 
concept  Qx::defines_equality_s
 Specifies that a type defines an equal to operator for itself (with strict return).
 
concept  Qx::defines_equality
 Specifies that a type defines an equal to operator for itself (with strict return).
 
concept  Qx::defines_inequality_for_s
 Specifies that a type defines a not equal to operator for another type (with strict return).
 
concept  Qx::defines_inequality_for
 Specifies that a type defines a not equal to operator for another type.
 
concept  Qx::defines_inequality_s
 Specifies that a type defines a not equal to operator for itself (with strict return).
 
concept  Qx::defines_inequality
 Specifies that a type defines a not equal to operator for itself (with strict return).
 
concept  Qx::defines_less_than_for_s
 Specifies that a type defines a less than operator for another type (with strict return).
 
concept  Qx::defines_less_than_for
 Specifies that a type defines a less than operator for another type.
 
concept  Qx::defines_less_than_s
 Specifies that a type defines a less than operator for itself (with strict return).
 
concept  Qx::defines_less_than
 Specifies that a type defines a less than operator for itself.
 
concept  Qx::defines_greater_than_for_s
 Specifies that a type defines a greater than operator for another type (with strict return).
 
concept  Qx::defines_greater_than_for
 Specifies that a type defines a greater than operator for another type.
 
concept  Qx::defines_greater_than_s
 Specifies that a type defines a greater than operator for itself (with strict return).
 
concept  Qx::defines_greater_than
 Specifies that a type defines a greater than operator for itself.
 
concept  Qx::defines_less_than_equal_for_s
 Specifies that a type defines a less than or equal to operator for another type (with strict return).
 
concept  Qx::defines_less_than_equal_for
 Specifies that a type defines a less than or equal to operator for another type.
 
concept  Qx::defines_less_than_equal_s
 Specifies that a type defines a less than or equal to operator for itself (with strict return).
 
concept  Qx::defines_less_than_equal
 Specifies that a type defines a less than or equal to operator for itself.
 
concept  Qx::defines_greater_than_equal_for_s
 Specifies that a type defines a greater than or equal to operator for another type (with strict return).
 
concept  Qx::defines_greater_than_equal_for
 Specifies that a type defines a greater than or equal to operator for another type.
 
concept  Qx::defines_greater_than_equal_s
 Specifies that a type defines a greater than or equal to operator for itself (with strict return).
 
concept  Qx::defines_greater_than_equal
 Specifies that a type defines a greater than or equal to operator for itself.
 
concept  Qx::defines_three_way_comp_for_s
 Specifies that a type defines a three-way comparison operator for another type (with strict return).
 
concept  Qx::defines_three_way_comp_for
 Specifies that a type defines a three-way comparison operator for another type.
 
concept  Qx::defines_three_way_comp_s
 Specifies that a type defines a three-way comparison operator for itself (with strict return).
 
concept  Qx::defines_three_way_comp
 Specifies that a type defines a three-way comparison operator for itself.
 
concept  Qx::arithmetic
 Specifies that a type is an arithmetic type.
 
concept  Qx::fundamental
 Specifies that a type is a fundamental type.
 
concept  Qx::traverseable
 Specifies that a type is a valid type for Qx::Traverser.
 
concept  Qx::static_castable_to
 Specifies that a type can be statically cast to another type.
 
concept  Qx::any_of
 Specifies that a type is one of several types.
 
concept  Qx::specializes
 Specifies that a type is a specialization of a template.
 
concept  Qx::qassociative
 Specifies that a type is a Qt-based associative container type.
 
concept  Qx::qcollective
 Specifies that a type is a Qt-based collection type.
 

Detailed Description

Operator related concepts come in two primary flavors:

  • Unconstrained return type (no suffix)
  • Constrained return type (_s suffix)

The constrained variants enforce a strict return type that matches the standard return type for the default implementation of that operator, or a user defined type, R, if there is none.

Todo
Figure out how to make a concept that uses the member of pointer (arrow) operator.