|
template<typename OperationType , typename... ArgTypes> |
auto | apply_operation (OperationType &&operation, const std::tuple< ArgTypes... > &tuple) |
|
template<typename OperationType , typename T , size_t Size> |
auto | apply_operation (OperationType &&operation, const std::array< T, Size > &array) |
|
template<typename OperationType , typename T , size_t Size> |
void | apply_operation_inplace (OperationType &&operation, std::array< T, Size > &array) |
|
template<typename T , size_t Size1, size_t Size2, typename = std::enable_if_t<Size1 != Size2>> |
auto | operator== (const std::array< T, Size1 > &array_a, const std::array< T, Size2 > &array_b) |
|
template<typename T , size_t Size1, size_t Size2, typename = std::enable_if_t<Size1 != Size2>> |
auto | operator!= (const std::array< T, Size1 > &array_a, const std::array< T, Size2 > &array_b) |
|
template<typename T , typename S , size_t Size, typename = std::enable_if_t<!std::is_same_v<T, S>>> |
auto | operator== (const std::array< T, Size > &array_a, const std::array< S, Size > &array_b) |
|
template<typename T , typename S , size_t Size, typename = std::enable_if_t<!std::is_same_v<T, S>>> |
auto | operator!= (const std::array< T, Size > &array_a, const std::array< S, Size > &array_b) |
|
template<typename T , typename S , size_t Size, typename = std::enable_if_t<!std::is_same_v<T, S>>> |
auto | operator< (const std::array< T, Size > &array_a, const std::array< S, Size > &array_b) |
|
template<typename T , typename S , size_t Size, typename = std::enable_if_t<!std::is_same_v<T, S>>> |
auto | operator<= (const std::array< T, Size > &array_a, const std::array< S, Size > &array_b) |
|
template<typename T , typename S , size_t Size, typename = std::enable_if_t<!std::is_same_v<T, S>>> |
auto | operator> (const std::array< T, Size > &array_a, const std::array< S, Size > &array_b) |
|
template<typename T , typename S , size_t Size, typename = std::enable_if_t<!std::is_same_v<T, S>>> |
auto | operator>= (const std::array< T, Size > &array_a, const std::array< S, Size > &array_b) |
|
template<typename T , size_t Size1, size_t Size2, typename = std::enable_if_t<Size1 != Size2>> |
auto | operator< (const std::array< T, Size1 > &array_a, const std::array< T, Size2 > &array_b) |
|
template<typename T , size_t Size1, size_t Size2, typename = std::enable_if_t<Size1 != Size2>> |
auto | operator<= (const std::array< T, Size1 > &array_a, const std::array< T, Size2 > &array_b) |
|
template<typename T , size_t Size1, size_t Size2, typename = std::enable_if_t<Size1 != Size2>> |
auto | operator> (const std::array< T, Size1 > &array_a, const std::array< T, Size2 > &array_b) |
|
template<typename T , size_t Size1, size_t Size2, typename = std::enable_if_t<Size1 != Size2>> |
auto | operator>= (const std::array< T, Size1 > &array_a, const std::array< T, Size2 > &array_b) |
|
template<typename T , typename S > |
auto | fail_safe_addition (T &&a, T &&b) |
|
template<typename T , typename S > |
auto | fail_safe_subtraction (T &&a, T &&b) |
|
template<typename T , typename S > |
auto | fail_safe_multiplication (T &&a, T &&b) |
|
template<typename... ArgTypes1, typename... ArgTypes2, typename common_type = types::tuple_operation_valid_t<std::tuple<ArgTypes1...>, std::tuple<ArgTypes2...>>, typename = std::enable_if_t<!std::is_same_v<common_type, std::tuple<>>>> |
auto | operator+ (const std::tuple< ArgTypes1... > &tuple_a, const std::tuple< ArgTypes2... > &tuple_b) |
|
template<typename... ArgTypes1, typename... ArgTypes2, typename common_type = types::tuple_operation_valid_t<std::tuple<ArgTypes1...>, std::tuple<ArgTypes2...>>, typename = std::enable_if_t<!std::is_same_v<common_type, std::tuple<>>>> |
auto | operator- (const std::tuple< ArgTypes1... > &tuple_a, const std::tuple< ArgTypes2... > &tuple_b) |
|
template<typename... ArgTypes1, typename... ArgTypes2, typename common_type = types::tuple_operation_valid_t<std::tuple<ArgTypes1...>, std::tuple<ArgTypes2...>>, typename = std::enable_if_t<!std::is_same_v<common_type, std::tuple<>>>> |
auto | operator* (const std::tuple< ArgTypes1... > &tuple_a, const std::tuple< ArgTypes2... > &tuple_b) |
|
template<typename... ArgTypes1, typename... ArgTypes2, typename common_type = types::tuple_operation_valid_t<std::tuple<ArgTypes1...>, std::tuple<ArgTypes2...>>, typename = std::enable_if_t<!std::is_same_v<common_type, std::tuple<>>>> |
auto | operator/ (const std::tuple< ArgTypes1... > &tuple_a, const std::tuple< ArgTypes2... > &tuple_b) |
|
template<typename T , typename S > |
auto | fail_safe_addition (T &&a, S &&b) |
|
template<typename T , typename S > |
auto | fail_safe_subtraction (T &&a, S &&b) |
|
template<typename T , typename S > |
auto | fail_safe_multiplication (T &&a, S &&b) |
|
template<typename T , typename S > |
auto | fail_safe_division (T &&a, S &&b) |
|
template<typename T , typename... ArgTypes> |
auto | operator+ (const T &scalar, const std::tuple< ArgTypes... > &tuple) |
|
template<typename T , typename... ArgTypes> |
auto | operator+ (const std::tuple< ArgTypes... > &tuple, const T &scalar) |
|
template<typename T , typename... ArgTypes> |
auto | operator- (const T &scalar, const std::tuple< ArgTypes... > &tuple) |
|
template<typename T , typename... ArgTypes> |
auto | operator- (const std::tuple< ArgTypes... > &tuple, const T &scalar) |
|
template<typename T , typename... ArgTypes> |
auto | operator* (const T &scalar, const std::tuple< ArgTypes... > &tuple) |
|
template<typename T , typename... ArgTypes> |
auto | operator* (const std::tuple< ArgTypes... > &tuple, const T &scalar) |
|
template<typename T , typename... ArgTypes> |
auto | operator/ (const T &scalar, const std::tuple< ArgTypes... > &tuple) |
|
template<typename T , typename... ArgTypes> |
auto | operator/ (const std::tuple< ArgTypes... > &tuple, const T &scalar) |
|
template<typename OperationType , typename... ArgTypes> |
void | apply_operation_inplace (OperationType &&operation, std::tuple< ArgTypes... > &tuple) |
|
template<typename T , typename S , size_t Size> |
auto | operator+ (const std::array< T, Size > &array_a, const std::array< S, Size > &array_b) |
|
template<typename T , typename S , size_t Size> |
auto | operator- (const std::array< T, Size > &array_a, const std::array< S, Size > &array_b) |
|
template<typename T , typename S , size_t Size> |
auto | operator* (const std::array< T, Size > &array_a, const std::array< S, Size > &array_b) |
|
template<typename T , typename S , size_t Size> |
auto | operator/ (const std::array< T, Size > &array_a, const std::array< S, Size > &array_b) |
|
template<typename T , typename S , size_t Size> |
auto | operator+ (const T &scalar, const std::array< S, Size > &array) |
|
template<typename T , typename S , size_t Size> |
auto | operator+ (const std::array< S, Size > &array, const T &scalar) |
|
template<typename T , typename S , size_t Size> |
auto | operator- (const T &scalar, const std::array< S, Size > &array) |
|
template<typename T , typename S , size_t Size> |
auto | operator- (const std::array< S, Size > &array, const T &scalar) |
|
template<typename T , typename S , size_t Size> |
auto | operator* (const T &scalar, const std::array< S, Size > &array) |
|
template<typename T , typename S , size_t Size> |
auto | operator* (const std::array< S, Size > &array, const T &scalar) |
|
template<typename T , typename S , size_t Size> |
auto | operator/ (const T &scalar, const std::array< S, Size > &array) |
|
template<typename T , typename S , size_t Size> |
auto | operator/ (const std::array< S, Size > &array, const T &scalar) |
|
template<typename... Elements, typename commom_element_type = types::tuple_common_element_t<std::tuple<Elements...>>> |
auto | sum_of_elements (const std::tuple< Elements... > &tuple) |
|
template<typename... Elements, typename commom_element_type = types::tuple_common_element_t<std::tuple<Elements...>>> |
double | mean_of_elements (const std::tuple< Elements... > &tuple) |
|
template<typename... Elements, typename commom_element_type = types::tuple_common_element_t<std::tuple<Elements...>>> |
double | standard_deviation (const std::tuple< Elements... > &tuple) |
|
template<typename ... EleTypes, typename list = types::type_list_t<EleTypes...>> |
std::enable_if_t< types::is_type_in_list_v< types::no_throw_t, list >, std::variant< EleTypes... > > | operator+ (const std::variant< EleTypes... > &variant_a, const std::variant< EleTypes... > &variant_b) |
|
template<typename ... EleTypes, typename list = types::type_list_t<EleTypes...>> |
std::enable_if_t< types::is_type_in_list_v< types::no_throw_t, list >, std::variant< EleTypes... > > | operator- (const std::variant< EleTypes... > &variant_a, const std::variant< EleTypes... > &variant_b) |
|
template<typename ... EleTypes, typename list = types::type_list_t<EleTypes...>> |
std::enable_if_t< types::is_type_in_list_v< types::no_throw_t, list >, std::variant< EleTypes... > > | operator* (const std::variant< EleTypes... > &variant_a, const std::variant< EleTypes... > &variant_b) |
|
template<typename ... EleTypes, typename list = types::type_list_t<EleTypes...>> |
std::enable_if_t< types::is_type_in_list_v< types::no_throw_t, list >, std::variant< EleTypes... > > | operator/ (const std::variant< EleTypes... > &variant_a, const std::variant< EleTypes... > &variant_b) |
|
template<typename T , typename ... EleTypes, typename list = types::type_list_t<EleTypes...>> |
std::enable_if_t< types::is_type_in_list_v< types::no_throw_t, list > &&types::is_type_in_list_v< T, list >, std::variant< EleTypes... > > | operator+ (const T &v, const std::variant< EleTypes... > &variant) |
|
template<typename T , typename ... EleTypes, typename list = types::type_list_t<EleTypes...>> |
std::enable_if_t< types::is_type_in_list_v< types::no_throw_t, list > &&types::is_type_in_list_v< T, list >, std::variant< EleTypes... > > | operator+ (const std::variant< EleTypes... > &variant, const T &v) |
|
template<typename T , typename ... EleTypes, typename list = types::type_list_t<EleTypes...>> |
std::enable_if_t< types::is_type_in_list_v< types::no_throw_t, list > &&types::is_type_in_list_v< T, list >, std::variant< EleTypes... > > | operator- (const T &v, const std::variant< EleTypes... > &variant) |
|
template<typename T , typename ... EleTypes, typename list = types::type_list_t<EleTypes...>> |
std::enable_if_t< types::is_type_in_list_v< types::no_throw_t, list > &&types::is_type_in_list_v< T, list >, std::variant< EleTypes... > > | operator- (const std::variant< EleTypes... > &variant, const T &v) |
|
template<typename T , typename ... EleTypes, typename list = types::type_list_t<EleTypes...>> |
std::enable_if_t< types::is_type_in_list_v< types::no_throw_t, list > &&types::is_type_in_list_v< T, list >, std::variant< EleTypes... > > | operator* (const T &v, const std::variant< EleTypes... > &variant) |
|
template<typename T , typename ... EleTypes, typename list = types::type_list_t<EleTypes...>> |
std::enable_if_t< types::is_type_in_list_v< types::no_throw_t, list > &&types::is_type_in_list_v< T, list >, std::variant< EleTypes... > > | operator* (const std::variant< EleTypes... > &variant, const T &v) |
|
template<typename T , typename ... EleTypes, typename list = types::type_list_t<EleTypes...>> |
std::enable_if_t< types::is_type_in_list_v< types::no_throw_t, list > &&types::is_type_in_list_v< T, list >, std::variant< EleTypes... > > | operator/ (const T &v, const std::variant< EleTypes... > &variant) |
|
template<typename T , typename ... EleTypes, typename list = types::type_list_t<EleTypes...>> |
std::enable_if_t< types::is_type_in_list_v< types::no_throw_t, list > &&types::is_type_in_list_v< T, list >, std::variant< EleTypes... > > | operator/ (const std::variant< EleTypes... > &variant, const T &v) |
|
template<typename ... EleTypes, typename list = types::type_list_t<EleTypes...>> |
std::enable_if_t<!types::is_type_in_list_v< types::no_throw_t, list >, std::variant< EleTypes... > > | operator+ (const std::variant< EleTypes... > &variant_a, const std::variant< EleTypes... > &variant_b) |
|
template<typename ... EleTypes, typename list = types::type_list_t<EleTypes...>> |
std::enable_if_t<!types::is_type_in_list_v< types::no_throw_t, list >, std::variant< EleTypes... > > | operator- (const std::variant< EleTypes... > &variant_a, const std::variant< EleTypes... > &variant_b) |
|
template<typename ... EleTypes, typename list = types::type_list_t<EleTypes...>> |
std::enable_if_t<!types::is_type_in_list_v< types::no_throw_t, list >, std::variant< EleTypes... > > | operator* (const std::variant< EleTypes... > &variant_a, const std::variant< EleTypes... > &variant_b) |
|
template<typename ... EleTypes, typename list = types::type_list_t<EleTypes...>> |
std::enable_if_t<!types::is_type_in_list_v< types::no_throw_t, list >, std::variant< EleTypes... > > | operator/ (const std::variant< EleTypes... > &variant_a, const std::variant< EleTypes... > &variant_b) |
|
template<typename T , typename ... EleTypes, typename list = types::type_list_t<EleTypes...>> |
std::enable_if_t<!types::is_type_in_list_v< types::no_throw_t, list > &&types::is_type_in_list_v< T, list >, std::variant< EleTypes... > > | operator+ (const T &v, const std::variant< EleTypes... > &variant) |
|
template<typename T , typename ... EleTypes, typename list = types::type_list_t<EleTypes...>> |
std::enable_if_t<!types::is_type_in_list_v< types::no_throw_t, list > &&types::is_type_in_list_v< T, list >, std::variant< EleTypes... > > | operator+ (const std::variant< EleTypes... > &variant, const T &v) |
|
template<typename T , typename ... EleTypes, typename list = types::type_list_t<EleTypes...>> |
std::enable_if_t<!types::is_type_in_list_v< types::no_throw_t, list > &&types::is_type_in_list_v< T, list >, std::variant< EleTypes... > > | operator- (const T &v, const std::variant< EleTypes... > &variant) |
|
template<typename T , typename ... EleTypes, typename list = types::type_list_t<EleTypes...>> |
std::enable_if_t<!types::is_type_in_list_v< types::no_throw_t, list > &&types::is_type_in_list_v< T, list >, std::variant< EleTypes... > > | operator- (const std::variant< EleTypes... > &variant, const T &v) |
|
template<typename T , typename ... EleTypes, typename list = types::type_list_t<EleTypes...>> |
std::enable_if_t<!types::is_type_in_list_v< types::no_throw_t, list > &&types::is_type_in_list_v< T, list >, std::variant< EleTypes... > > | operator* (const T &v, const std::variant< EleTypes... > &variant) |
|
template<typename T , typename ... EleTypes, typename list = types::type_list_t<EleTypes...>> |
std::enable_if_t<!types::is_type_in_list_v< types::no_throw_t, list > &&types::is_type_in_list_v< T, list >, std::variant< EleTypes... > > | operator* (const std::variant< EleTypes... > &variant, const T &v) |
|
template<typename T , typename ... EleTypes, typename list = types::type_list_t<EleTypes...>> |
std::enable_if_t<!types::is_type_in_list_v< types::no_throw_t, list > &&types::is_type_in_list_v< T, list >, std::variant< EleTypes... > > | operator/ (const T &v, const std::variant< EleTypes... > &variant) |
|
template<typename T , typename ... EleTypes, typename list = types::type_list_t<EleTypes...>> |
std::enable_if_t<!types::is_type_in_list_v< types::no_throw_t, list > &&types::is_type_in_list_v< T, list >, std::variant< EleTypes... > > | operator/ (const std::variant< EleTypes... > &variant, const T &v) |
|
template<auto N1, auto D1, auto N2, auto D2> |
constexpr auto | operator* (std::ratio< N1, D1 >, std::ratio< N2, D2 >) |
|
template<auto N1, auto D1, auto N2, auto D2> |
constexpr auto | operator/ (std::ratio< N1, D1 > a, std::ratio< N2, D2 >) |
|
template<auto N1, auto D1, auto N2, auto D2> |
constexpr auto | operator+ (std::ratio< N1, D1 >, std::ratio< N2, D2 >) |
|
template<auto N1, auto D1, auto N2, auto D2> |
constexpr auto | operator- (std::ratio< N1, D1 >, std::ratio< N2, D2 >) |
|