|
opynsim
Unofficial C++ Documentation
|
#include <liboscar/utilities/hash_helpers.h>#include <array>#include <compare>#include <concepts>#include <cstddef>#include <cstdint>#include <format>#include <ostream>#include <ranges>#include <span>#include <string_view>#include <tuple>#include <type_traits>Go to the source code of this file.
Classes | |
| class | osc::Vector< T, N > |
| struct | std::formatter< osc::Vector< T, N > > |
| struct | std::tuple_size< osc::Vector< T, N > > |
| struct | std::tuple_element< I, osc::Vector< T, N > > |
| struct | std::hash< osc::Vector< T, N > > |
Namespaces | |
| namespace | osc |
| namespace | osc::detail |
Concepts | |
| concept | osc::detail::CompileTimeSizeGreaterThanOrEqualTo |
| concept | osc::detail::CompileTimeSizeEqualTo |
| concept | osc::detail::OutputStreamable |
Typedefs | |
| using | osc::Vector2 = Vector< float, 2 > |
| using | osc::Vector2f = Vector< float, 2 > |
| using | osc::Vector2d = Vector< double, 2 > |
| using | osc::Vector2i = Vector< int, 2 > |
| using | osc::Vector2z = Vector< ptrdiff_t, 2 > |
| using | osc::Vector2uz = Vector< size_t, 2 > |
| using | osc::Vector2u32 = Vector< uint32_t, 2 > |
| using | osc::Vector3 = Vector< float, 3 > |
| using | osc::Vector3f = Vector< float, 3 > |
| using | osc::Vector3d = Vector< double, 3 > |
| using | osc::Vector3i = Vector< int, 3 > |
| using | osc::Vector3z = Vector< ptrdiff_t, 3 > |
| using | osc::Vector3uz = Vector< size_t, 3 > |
| using | osc::Vector3u32 = Vector< uint32_t, 3 > |
| using | osc::Vector4 = Vector< float, 4 > |
| using | osc::Vector4f = Vector< float, 4 > |
| using | osc::Vector4d = Vector< double, 4 > |
| using | osc::Vector4i = Vector< int, 4 > |
| using | osc::Vector4z = Vector< ptrdiff_t, 4 > |
| using | osc::Vector4uz = Vector< size_t, 4 > |
| using | osc::Vector4u32 = Vector< uint32_t, 4 > |
Functions | |
| template<typename T , size_t N> requires (N != std::dynamic_extent) | |
| constexpr size_t | osc::detail::compile_time_size (std::span< T, N >) |
| template<typename T , size_t N> requires (requires (const Vector<T, N>& v) { +v[0]; }) | |
| constexpr auto | osc::operator+ (const Vector< T, N > &vec) |
| template<typename T , size_t N> requires (requires (const Vector<T, N>& v) { -v[0]; }) | |
| constexpr auto | osc::operator- (const Vector< T, N > &vec) |
| template<typename T , size_t N> requires (requires (const Vector<T, N>& v) { !v[0]; }) | |
| constexpr auto | osc::operator! (const Vector< T, N > &vec) |
| template<typename T , size_t N, typename U > requires ( requires (const Vector<T, N>& v, const U& rhs) { v[0] + rhs; } ) | |
| constexpr auto | osc::operator+ (const Vector< T, N > &lhs, const U &rhs) |
| template<typename T , typename U , size_t N> requires ( requires (const T& lhs, const Vector<U, N>& rhs) { lhs + rhs[0]; } ) | |
| constexpr auto | osc::operator+ (const T &lhs, const Vector< U, N > &rhs) |
| template<typename T , typename U , size_t N> requires (requires (const Vector<T, N>& lhs, const Vector<U, N>& rhs) { lhs[0] + rhs[0]; }) | |
| constexpr auto | osc::operator+ (const Vector< T, N > &lhs, const Vector< U, N > &rhs) |
| template<typename T , size_t N, typename U > requires (requires (const Vector<T, N>& v, const U& rhs) { v[0] - rhs; }) | |
| constexpr auto | osc::operator- (const Vector< T, N > &lhs, const U &rhs) |
| template<typename T , typename U , size_t N> requires (requires (const T& lhs, const Vector<U, N>& rhs) { lhs - rhs[0]; }) | |
| constexpr auto | osc::operator- (const T &lhs, const Vector< U, N > &rhs) |
| template<typename T , typename U , size_t N> requires (requires (const Vector<T, N>& lhs, const Vector<U, N>& rhs) { lhs[0] - rhs[0]; }) | |
| constexpr auto | osc::operator- (const Vector< T, N > &lhs, const Vector< U, N > &rhs) |
| template<typename T , size_t N, typename U > requires (requires (const Vector<T, N>& v, const U& rhs) { v[0] * rhs; }) | |
| constexpr auto | osc::operator* (const Vector< T, N > &lhs, const U &rhs) |
| template<typename T , typename U , size_t N> requires (requires (const T& lhs, const Vector<U, N>& rhs) { U(lhs * rhs[0]); }) | |
| constexpr auto | osc::operator* (const T &lhs, const Vector< U, N > &rhs) |
| template<typename T , typename U , size_t N> requires (requires (const Vector<T, N>& lhs, const Vector<U, N>& rhs) { lhs[0] * rhs[0]; }) | |
| constexpr auto | osc::operator* (const Vector< T, N > &lhs, const Vector< U, N > &rhs) |
| template<typename T , size_t N, typename U > requires (requires (const Vector<T, N>& v, const U& rhs) { v[0] / rhs; }) | |
| constexpr auto | osc::operator/ (const Vector< T, N > &lhs, const U &rhs) |
| template<typename T , typename U , size_t N> requires (requires (const T& lhs, const Vector<U, N>& rhs) { lhs / rhs[0]; }) | |
| constexpr auto | osc::operator/ (const T &lhs, const Vector< U, N > &rhs) |
| template<typename T , typename U , size_t N> requires (requires (const Vector<T, N>& lhs, const Vector<U, N>& rhs) { lhs[0] / rhs[0]; }) | |
| constexpr auto | osc::operator/ (const Vector< T, N > &lhs, const Vector< U, N > &rhs) |
| template<detail::OutputStreamable T, size_t N> | |
| std::ostream & | osc::operator<< (std::ostream &out, const Vector< T, N > &v) |
| template<size_t I, typename T , size_t N> | |
| constexpr const T & | osc::get (const Vector< T, N > &v) |
| template<size_t I, typename T , size_t N> | |
| constexpr T & | osc::get (Vector< T, N > &v) |
| template<size_t I, typename T , size_t N> | |
| constexpr T && | osc::get (Vector< T, N > &&v) |
| template<size_t I, typename T , size_t N> | |
| constexpr const T && | osc::get (const Vector< T, N > &&v) |