C++ Library Extensions 2022.12.09
To help learn modern C++ programming
cpg_std_array_tuple_operations.hpp File Reference
Include dependency graph for cpg_std_array_tuple_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::numerical_c H, cgt::numerical_c... Ts>
constexpr decltype(auto) stl_extensions::tuple_to_array (std::tuple< H, Ts... > const &tuple) noexcept
 
template<cgt::tuple_flat_c H, cgt::tuple_flat_c... Ts>
requires (!cgt::all_same_flat_c<H, Ts...>) && (std::tuple_size_v<H> == ... == std::tuple_size_v<Ts>)
constexpr decltype(auto) stl_extensions::tuple_to_array (std::tuple< H, Ts... > const &tuple) noexcept
 
template<cgt::tuple_flat_c H, cgt::tuple_flat_c... Ts>
requires cgt::all_same_flat_c<H, Ts...>
constexpr decltype(auto) stl_extensions::tuple_to_array (std::tuple< H, Ts... > const &tuple) noexcept
 
template<cgt::numerical_c E, std::size_t N>
constexpr decltype(auto) stl_extensions::array_to_tuple (std::array< E, N > const &array) noexcept
 
template<cgt::numerical_c E, std::size_t N, cgt::numerical_c H, cgt::numerical_c... Ts>
requires (N == sizeof...(Ts) + 1)
constexpr decltype(auto) stl_extensions::operator+ (std::array< E, N > const &A, std::tuple< H, Ts... > const &T) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::numerical_c E, std::size_t N, cgt::numerical_c H, cgt::numerical_c... Ts>
requires (N == sizeof...(Ts) + 1)
constexpr decltype(auto) stl_extensions::operator+ (std::tuple< H, Ts... > const &T, std::array< E, N > const &A) noexcept(!cpg::bDetectOverFlow)
 
template<typename E , std::size_t N, typename H , typename... Ts>
requires (N == sizeof...(Ts) + 1) && ( !(cgt::numerical_c<E> && (cgt::numerical_c<H> && ... && cgt::numerical_c<Ts>)) )
constexpr decltype(auto) stl_extensions::operator+ (std::array< E, N > const &A, std::tuple< H, Ts... > const &T) noexcept(!cpg::bDetectOverFlow)
 
template<typename E , std::size_t N, typename H , typename... Ts>
requires (N == sizeof...(Ts) + 1) && ( !( cgt::numerical_c<E> && (cgt::numerical_c<H> && ... && cgt::numerical_c<Ts>)) )
constexpr decltype(auto) stl_extensions::operator+ (std::tuple< H, Ts... > const &T, std::array< E, N > const &A) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::numerical_c E, std::size_t N, cgt::numerical_c H, cgt::numerical_c... Ts>
requires (N == sizeof...(Ts) + 1)
constexpr decltype(auto) stl_extensions::operator- (std::array< E, N > const &A, std::tuple< H, Ts... > const &T) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::numerical_c E, std::size_t N, cgt::numerical_c H, cgt::numerical_c... Ts>
requires (N == sizeof...(Ts) + 1)
constexpr decltype(auto) stl_extensions::operator- (std::tuple< H, Ts... > const &T, std::array< E, N > const &A) noexcept(!cpg::bDetectOverFlow)
 
template<typename E , std::size_t N, typename H , typename... Ts>
requires (N == sizeof...(Ts) + 1) && ( !(cgt::numerical_c<E> && (cgt::numerical_c<H> && ... && cgt::numerical_c<Ts>)) )
constexpr decltype(auto) stl_extensions::operator- (std::array< E, N > const &A, std::tuple< H, Ts... > const &T) noexcept(!cpg::bDetectOverFlow)
 
template<typename E , std::size_t N, typename H , typename... Ts>
requires (N == sizeof...(Ts) + 1) && ( !( cgt::numerical_c<E> && (cgt::numerical_c<H> && ... && cgt::numerical_c<Ts>)) )
constexpr decltype(auto) stl_extensions::operator- (std::tuple< H, Ts... > const &T, std::array< E, N > const &A) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::numerical_c E, std::size_t N, cgt::numerical_c H, cgt::numerical_c... Ts>
requires (N == sizeof...(Ts) + 1)
constexpr decltype(auto) stl_extensions::operator* (std::array< E, N > const &A, std::tuple< H, Ts... > const &T) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::numerical_c E, std::size_t N, cgt::numerical_c H, cgt::numerical_c... Ts>
requires (N == sizeof...(Ts) + 1)
constexpr decltype(auto) stl_extensions::operator* (std::tuple< H, Ts... > const &T, std::array< E, N > const &A) noexcept(!cpg::bDetectOverFlow)
 
template<typename E , std::size_t N, typename H , typename... Ts>
requires (N == sizeof...(Ts) + 1) && ( !(cgt::numerical_c<E> && (cgt::numerical_c<H> && ... && cgt::numerical_c<Ts>)) )
constexpr decltype(auto) stl_extensions::operator* (std::array< E, N > const &A, std::tuple< H, Ts... > const &T) noexcept(!cpg::bDetectOverFlow)
 
template<typename E , std::size_t N, typename H , typename... Ts>
requires (N == sizeof...(Ts) + 1) && ( !( cgt::numerical_c<E> && (cgt::numerical_c<H> && ... && cgt::numerical_c<Ts>)) )
constexpr decltype(auto) stl_extensions::operator* (std::tuple< H, Ts... > const &T, std::array< E, N > const &A) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::numerical_c E, std::size_t N, cgt::numerical_c H, cgt::numerical_c... Ts>
requires (N == sizeof...(Ts) + 1)
constexpr decltype(auto) stl_extensions::operator/ (std::array< E, N > const &A, std::tuple< H, Ts... > const &T) noexcept(!cpg::bDetectOverFlow)
 
template<cgt::numerical_c E, std::size_t N, cgt::numerical_c H, cgt::numerical_c... Ts>
requires (N == sizeof...(Ts) + 1)
constexpr decltype(auto) stl_extensions::operator/ (std::tuple< H, Ts... > const &T, std::array< E, N > const &A) noexcept(!cpg::bDetectOverFlow)
 
template<typename E , std::size_t N, typename H , typename... Ts>
requires (N == sizeof...(Ts) + 1) && ( !(cgt::numerical_c<E> && (cgt::numerical_c<H> && ... && cgt::numerical_c<Ts>)) )
constexpr decltype(auto) stl_extensions::operator/ (std::array< E, N > const &A, std::tuple< H, Ts... > const &T) noexcept(!cpg::bDetectOverFlow)
 
template<typename E , std::size_t N, typename H , typename... Ts>
requires (N == sizeof...(Ts) + 1) && ( !( cgt::numerical_c<E> && (cgt::numerical_c<H> && ... && cgt::numerical_c<Ts>)) )
constexpr decltype(auto) stl_extensions::operator/ (std::tuple< H, Ts... > const &T, std::array< E, N > const &A) noexcept(!cpg::bDetectOverFlow)
 

Macro Definition Documentation

◆ NOMINMAX

#define NOMINMAX

Definition at line 11 of file cpg_std_array_tuple_operations.hpp.