C++ Library Extensions 2022.12.09
To help learn modern C++ programming
cpg_vector_operations.hpp File Reference
#include "cpg_types.hpp"
Include dependency graph for cpg_vector_operations.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  stl_extensions
 

Macros

#define NOMINMAX
 

Functions

template<cgt::vector_c LeftType, cgt::vector_c RightType>
requires cgt::common_vector_c<LeftType, RightType>
constexpr decltype(auto) stl_extensions::operator+ (LeftType &&A, RightType &&B) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::vector_c LeftType, cgt::vector_c RightType>
requires cgt::common_vector_c<LeftType, RightType>
constexpr decltype(auto) stl_extensions::operator- (LeftType &&A, RightType &&B) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::vector_c LeftType, cgt::vector_c RightType>
requires cgt::common_vector_c<LeftType, RightType>
constexpr decltype(auto) stl_extensions::operator* (LeftType &&A, RightType &&B) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::vector_c LeftType, cgt::vector_c RightType>
requires cgt::common_vector_c<LeftType, RightType>
constexpr decltype(auto) stl_extensions::operator/ (LeftType &&A, RightType &&B) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::vector_c LeftType, cgt::vector_c RightType>
requires cgt::common_vector_c<LeftType, RightType> && (cgt::std_array_c<cgt::first_type_t<LeftType>>) && (cgt::std_array_c<cgt::first_type_t<RightType>>)
constexpr decltype(auto) stl_extensions::operator% (LeftType &&A, RightType &&B) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::vector_c LeftType, cgt::vector_c RightType>
requires cgt::common_vector_c<LeftType, RightType> && (cgt::std_array_c<cgt::first_type_t<LeftType>>) && (cgt::std_array_c<cgt::first_type_t<RightType>>)
constexpr decltype(auto) stl_extensions::operator& (LeftType &&A, RightType &&B) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::vector_c LeftType, cgt::std_array_flat_c RightType>
requires cgt::common_vector_c<LeftType, RightType> && (cgt::std_array_c<cgt::first_type_t<LeftType>>) && (cgt::numerical_c<cgt::first_type_t<RightType>>)
constexpr decltype(auto) stl_extensions::operator+ (LeftType &&A, RightType &&B) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::std_array_flat_c LeftType, cgt::vector_c RightType>
requires cgt::common_vector_c<LeftType, RightType> && (cgt::numerical_c<cgt::first_type_t<LeftType>>) && (cgt::std_array_c<cgt::first_type_t<RightType>>)
constexpr decltype(auto) stl_extensions::operator+ (LeftType &&A, RightType &&B) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::vector_c LeftType, cgt::std_array_flat_c RightType>
requires cgt::common_vector_c<LeftType, RightType> && (cgt::std_array_c<cgt::first_type_t<LeftType>>) && (cgt::numerical_c<cgt::first_type_t<RightType>>)
constexpr decltype(auto) stl_extensions::operator- (LeftType &&A, RightType &&B) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::std_array_flat_c LeftType, cgt::vector_c RightType>
requires cgt::common_vector_c<LeftType, RightType> && (cgt::numerical_c<cgt::first_type_t<LeftType>>) && (cgt::std_array_c<cgt::first_type_t<RightType>>)
constexpr decltype(auto) stl_extensions::operator- (LeftType &&A, RightType &&B) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::vector_c LeftType, cgt::std_array_flat_c RightType>
requires cgt::common_vector_c<LeftType, RightType> && (cgt::std_array_c<cgt::first_type_t<LeftType>>) && (cgt::numerical_c<cgt::first_type_t<RightType>>)
constexpr decltype(auto) stl_extensions::operator* (LeftType &&A, RightType &&B) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::std_array_flat_c LeftType, cgt::vector_c RightType>
requires cgt::common_vector_c<LeftType, RightType> && (cgt::numerical_c<cgt::first_type_t<LeftType>>) && (cgt::std_array_c<cgt::first_type_t<RightType>>)
constexpr decltype(auto) stl_extensions::operator* (LeftType &&A, RightType &&B) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::vector_c LeftType, cgt::std_array_flat_c RightType>
requires cgt::common_vector_c<LeftType, RightType> && (cgt::std_array_c<cgt::first_type_t<LeftType>>) && (cgt::numerical_c<cgt::first_type_t<RightType>>)
constexpr decltype(auto) stl_extensions::operator/ (LeftType &&A, RightType &&B) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::std_array_flat_c LeftType, cgt::vector_c RightType>
requires cgt::common_vector_c<LeftType, RightType> && (cgt::numerical_c<cgt::first_type_t<LeftType>>) && (cgt::std_array_c<cgt::first_type_t<RightType>>)
constexpr decltype(auto) stl_extensions::operator/ (LeftType &&A, RightType &&B) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::vector_c LeftType, cgt::std_array_flat_c RightType>
requires cgt::common_vector_c<LeftType, RightType> && (cgt::std_array_c<cgt::first_type_t<LeftType>>) && (cgt::numerical_c<cgt::first_type_t<RightType>>)
constexpr decltype(auto) stl_extensions::operator% (LeftType &&A, RightType &&B) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::std_array_flat_c LeftType, cgt::vector_c RightType>
requires cgt::common_vector_c<LeftType, RightType> && (cgt::numerical_c<cgt::first_type_t<LeftType>>) && (cgt::std_array_c<cgt::first_type_t<RightType>>)
constexpr decltype(auto) stl_extensions::operator% (LeftType &&A, RightType &&B) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::vector_c LeftType, cgt::std_array_flat_c RightType>
requires cgt::std_array_c<cgt::first_type_t<LeftType>> && cgt::numerical_c<cgt::first_type_t<RightType>> && (std::tuple_size_v<cgt::first_type_t<LeftType>> == std::tuple_size_v<std::remove_cvref_t<RightType>>)
constexpr decltype(auto) stl_extensions::operator& (LeftType &&A, RightType &&B) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::std_array_flat_c LeftType, cgt::vector_c RightType>
requires cgt::numerical_c<cgt::first_type_t<LeftType>> && cgt::std_array_c<cgt::first_type_t<RightType>> && (std::tuple_size_v<std::remove_cvref_t<LeftType>> == std::tuple_size_v<cgt::first_type_t<RightType>>)
constexpr decltype(auto) stl_extensions::operator& (LeftType &&A, RightType &&B) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::vector_c LeftType, cgt::numerical_c RightType>
requires cgt::common_vector_c<LeftType, RightType>
constexpr decltype(auto) stl_extensions::operator+ (LeftType &&A, RightType B) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::numerical_c LeftType, cgt::vector_c RightType>
requires cgt::common_vector_c<LeftType, RightType>
constexpr decltype(auto) stl_extensions::operator+ (LeftType A, RightType &&B) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::vector_c LeftType, cgt::numerical_c RightType>
requires cgt::common_vector_c<LeftType, RightType>
constexpr decltype(auto) stl_extensions::operator- (LeftType &&A, RightType B) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::numerical_c LeftType, cgt::vector_c RightType>
requires cgt::common_vector_c<LeftType, RightType>
constexpr decltype(auto) stl_extensions::operator- (LeftType A, RightType &&B) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::vector_c LeftType, cgt::numerical_c RightType>
requires cgt::common_vector_c<LeftType, RightType>
constexpr decltype(auto) stl_extensions::operator* (LeftType &&A, RightType B) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::numerical_c LeftType, cgt::vector_c RightType>
requires cgt::common_vector_c<LeftType, RightType>
constexpr decltype(auto) stl_extensions::operator* (LeftType A, RightType &&B) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::vector_c LeftType, cgt::numerical_c RightType>
requires cgt::common_vector_c<LeftType, RightType>
constexpr decltype(auto) stl_extensions::operator/ (LeftType &&A, RightType B) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::numerical_c LeftType, cgt::vector_c RightType>
requires cgt::common_vector_c<LeftType, RightType>
constexpr decltype(auto) stl_extensions::operator/ (LeftType A, RightType &&B) noexcept(!cpg::bDetectOverFlow)
 

Macro Definition Documentation

◆ NOMINMAX

#define NOMINMAX

Definition at line 13 of file cpg_vector_operations.hpp.