OpenSiv3D  v0.6.5
C++20 framework for creative coding
Functor.hpp File Reference
#include <utility>
#include <cmath>
#include <functional>
#include "Common.hpp"
#include "PlaceHolder.hpp"
#include "detail/Functor.ipp"

Namespaces

 s3d
 

Functions

template<class Type = void>
constexpr auto s3d::Equal () noexcept
 
template<class TypeX >
constexpr auto s3d::Equal (const TypeX &x) noexcept
 
template<class Type = void, class TypeX , class TypeY >
constexpr auto s3d::Equal (TypeX &&x, TypeY &&y) noexcept(noexcept(std::equal_to< Type >()(std::forward< TypeX >(x), std::forward< TypeY >(y))))
 
template<class TypeY >
constexpr auto s3d::Equal (PlaceHolder_t, TypeY &&y) noexcept
 
template<class TypeX >
constexpr auto s3d::Equal (TypeX &&x, PlaceHolder_t) noexcept
 
template<class Type = void>
constexpr auto s3d::Equal (PlaceHolder_t, PlaceHolder_t) noexcept
 
template<class Type = void>
constexpr auto s3d::NotEqual () noexcept
 
template<class TypeX >
constexpr auto s3d::NotEqual (const TypeX &x) noexcept
 
template<class Type = void, class TypeX , class TypeY >
constexpr auto s3d::NotEqual (TypeX &&x, TypeY &&y) noexcept(noexcept(std::not_equal_to< Type >()(std::forward< TypeX >(x), std::forward< TypeY >(y))))
 
template<class TypeY >
constexpr auto s3d::NotEqual (PlaceHolder_t, TypeY &&y) noexcept
 
template<class TypeX >
constexpr auto s3d::NotEqual (TypeX &&x, PlaceHolder_t) noexcept
 
template<class Type = void>
constexpr auto s3d::NotEqual (PlaceHolder_t, PlaceHolder_t) noexcept
 
template<class Type = void>
constexpr auto s3d::LessThan () noexcept
 
template<class TypeX >
constexpr auto s3d::LessThan (const TypeX &x) noexcept
 
template<class Type = void, class TypeX , class TypeY >
constexpr auto s3d::LessThan (TypeX &&x, TypeY &&y) noexcept(noexcept(std::less< Type >()(std::forward< TypeX >(x), std::forward< TypeY >(y))))
 
template<class TypeY >
constexpr auto s3d::LessThan (PlaceHolder_t, TypeY &&y) noexcept
 
template<class TypeX >
constexpr auto s3d::LessThan (TypeX &&x, PlaceHolder_t) noexcept
 
template<class Type = void>
constexpr auto s3d::LessThan (PlaceHolder_t, PlaceHolder_t) noexcept
 
template<class Type = void>
constexpr auto s3d::LessThanEqual () noexcept
 
template<class TypeX >
constexpr auto s3d::LessThanEqual (const TypeX &x) noexcept
 
template<class Type = void, class TypeX , class TypeY >
constexpr auto s3d::LessThanEqual (TypeX &&x, TypeY &&y) noexcept(noexcept(std::less_equal< Type >()(std::forward< TypeX >(x), std::forward< TypeY >(y))))
 
template<class TypeY >
constexpr auto s3d::LessThanEqual (PlaceHolder_t, TypeY &&y) noexcept
 
template<class TypeX >
constexpr auto s3d::LessThanEqual (TypeX &&x, PlaceHolder_t) noexcept
 
template<class Type = void>
constexpr auto s3d::LessThanEqual (PlaceHolder_t, PlaceHolder_t) noexcept
 
template<class Type = void>
constexpr auto s3d::GreaterThan () noexcept
 
template<class TypeX >
constexpr auto s3d::GreaterThan (const TypeX &x) noexcept
 
template<class Type = void, class TypeX , class TypeY >
constexpr auto s3d::GreaterThan (TypeX &&x, TypeY &&y) noexcept(noexcept(std::greater< Type >()(std::forward< TypeX >(x), std::forward< TypeY >(y))))
 
template<class TypeY >
constexpr auto s3d::GreaterThan (PlaceHolder_t, TypeY &&y) noexcept
 
template<class TypeX >
constexpr auto s3d::GreaterThan (TypeX &&x, PlaceHolder_t) noexcept
 
template<class Type = void>
constexpr auto s3d::GreaterThan (PlaceHolder_t, PlaceHolder_t) noexcept
 
template<class Type = void>
constexpr auto s3d::GreaterThanEqual () noexcept
 
template<class TypeX >
constexpr auto s3d::GreaterThanEqual (const TypeX &x) noexcept
 
template<class Type = void, class TypeX , class TypeY >
constexpr auto s3d::GreaterThanEqual (TypeX &&x, TypeY &&y) noexcept(noexcept(std::greater_equal< Type >()(std::forward< TypeX >(x), std::forward< TypeY >(y))))
 
template<class TypeY >
constexpr auto s3d::GreaterThanEqual (PlaceHolder_t, TypeY &&y) noexcept
 
template<class TypeX >
constexpr auto s3d::GreaterThanEqual (TypeX &&x, PlaceHolder_t) noexcept
 
template<class Type = void>
constexpr auto s3d::GreaterThanEqual (PlaceHolder_t, PlaceHolder_t) noexcept
 
constexpr auto s3d::operator+ (PlaceHolder_t) noexcept
 
constexpr auto s3d::operator- (PlaceHolder_t) noexcept
 
template<class Type = void>
constexpr auto s3d::Plus () noexcept
 
template<class TypeX >
constexpr auto s3d::Plus (const TypeX &x) noexcept
 
template<class Type = void, class TypeX , class TypeY >
constexpr auto s3d::Plus (TypeX &&x, TypeY &&y) noexcept(noexcept(std::plus< Type >()(std::forward< TypeX >(x), std::forward< TypeY >(y))))
 
template<class TypeY >
constexpr auto s3d::Plus (PlaceHolder_t, TypeY &&y) noexcept
 
template<class TypeX >
constexpr auto s3d::Plus (TypeX &&x, PlaceHolder_t) noexcept
 
template<class Type = void>
constexpr auto s3d::Plus (PlaceHolder_t, PlaceHolder_t) noexcept
 
template<class Type = void>
constexpr auto s3d::Minus () noexcept
 
template<class TypeX >
constexpr auto s3d::Minus (const TypeX &x) noexcept
 
template<class Type = void, class TypeX , class TypeY >
constexpr auto s3d::Minus (TypeX &&x, TypeY &&y) noexcept(noexcept(std::minus< Type >()(std::forward< TypeX >(x), std::forward< TypeY >(y))))
 
template<class TypeY >
constexpr auto s3d::Minus (PlaceHolder_t, TypeY &&y) noexcept
 
template<class TypeX >
constexpr auto s3d::Minus (TypeX &&x, PlaceHolder_t) noexcept
 
template<class Type = void>
constexpr auto s3d::Minus (PlaceHolder_t, PlaceHolder_t) noexcept
 
template<class Type = void>
constexpr auto s3d::Multiplies () noexcept
 
template<class TypeX >
constexpr auto s3d::Multiplies (const TypeX &x) noexcept
 
template<class Type = void, class TypeX , class TypeY >
constexpr auto s3d::Multiplies (TypeX &&x, TypeY &&y) noexcept(noexcept(std::multiplies< Type >()(std::forward< TypeX >(x), std::forward< TypeY >(y))))
 
template<class TypeY >
constexpr auto s3d::Multiplies (PlaceHolder_t, TypeY &&y) noexcept
 
template<class TypeX >
constexpr auto s3d::Multiplies (TypeX &&x, PlaceHolder_t) noexcept
 
template<class Type = void>
constexpr auto s3d::Multiplies (PlaceHolder_t, PlaceHolder_t) noexcept
 
template<class Type = void>
constexpr auto s3d::Divides () noexcept
 
template<class TypeX >
constexpr auto s3d::Divides (const TypeX &x) noexcept
 
template<class Type = void, class TypeX , class TypeY >
constexpr auto s3d::Divides (TypeX &&x, TypeY &&y) noexcept(noexcept(std::divides< Type >()(std::forward< TypeX >(x), std::forward< TypeY >(y))))
 
template<class TypeY >
constexpr auto s3d::Divides (PlaceHolder_t, TypeY &&y) noexcept
 
template<class TypeX >
constexpr auto s3d::Divides (TypeX &&x, PlaceHolder_t) noexcept
 
template<class Type = void>
constexpr auto s3d::Divides (PlaceHolder_t, PlaceHolder_t) noexcept
 
constexpr auto s3d::Modulus () noexcept
 
template<class TypeX >
constexpr auto s3d::Modulus (const TypeX &x) noexcept
 
template<class Type = void, class TypeX , class TypeY >
constexpr auto s3d::Modulus (TypeX &&x, TypeY &&y) noexcept(noexcept(detail::ModulusF_impl{}(std::forward< TypeX >(x), std::forward< TypeY >(y))))
 
template<class TypeY >
constexpr auto s3d::Modulus (PlaceHolder_t, TypeY &&y) noexcept
 
template<class TypeX >
constexpr auto s3d::Modulus (TypeX &&x, PlaceHolder_t) noexcept
 
template<class Type = void>
constexpr auto s3d::Modulus (PlaceHolder_t, PlaceHolder_t) noexcept
 
template<class Type >
constexpr auto s3d::Max (const Type &a, PlaceHolder_t) noexcept
 
template<class Type >
constexpr auto s3d::Max (PlaceHolder_t, const Type &b) noexcept
 
constexpr auto s3d::Max (PlaceHolder_t, PlaceHolder_t) noexcept
 
template<class Type >
constexpr auto s3d::Min (const Type &a, PlaceHolder_t) noexcept
 
template<class Type >
constexpr auto s3d::Min (PlaceHolder_t, const Type &b) noexcept
 
constexpr auto s3d::Min (PlaceHolder_t, PlaceHolder_t) noexcept
 
template<class Type >
constexpr auto s3d::Clamp (PlaceHolder_t, const Type &min, const Type &max) noexcept
 
template<class Type >
constexpr auto s3d::InRange (PlaceHolder_t, const Type &min, const Type &max) noexcept
 
template<class Type >
constexpr auto s3d::InOpenRange (PlaceHolder_t, const Type &min, const Type &max) noexcept
 
constexpr SIV3D_CONCEPT_ARITHMETIC auto s3d::AbsDiff (Arithmetic a, PlaceHolder_t) noexcept
 
constexpr SIV3D_CONCEPT_ARITHMETIC auto s3d::AbsDiff (PlaceHolder_t, Arithmetic b) noexcept
 
constexpr auto s3d::AbsDiff (PlaceHolder_t, PlaceHolder_t) noexcept
 

Variables

constexpr auto s3d::UnaryPlus = detail::UnaryPlus_impl{}
 
constexpr auto s3d::Negate = detail::Negate_impl{}