3#include <Core/Math/Math.hpp>
5#include <Core/Utils/StdOptional.hpp>
6#include <Core/Utils/TypesUtils.hpp>
11inline bool isApprox(
const Ra::Core::Utils::optional<S>& lhs,
const S& rhs ) {
16inline bool isApprox(
const S& lhs,
const Ra::Core::Utils::optional<S>& rhs ) {
22inline bool isApprox(
const S& lhs,
const S& rhs ) {
28 explicit NonCopy(
int x ) : value( x ) {}
29 NonCopy( NonCopy&& other ) {
33 NonCopy& operator=( NonCopy&& other ) {
42 NonCopy(
const NonCopy& ) =
delete;
43 NonCopy& operator=(
const NonCopy& ) =
delete;
61template <
typename Types>
67 void operator()(
const std::string& name, T& value ) {
68 std::cout <<
" [ " << name <<
" --> " << value <<
" ("
69 << Ra::Core::Utils::simplifiedDemangledType<T>() <<
") ]\n";
74 void operator()(
const std::string& name,
const T& ) {
75 std::cout <<
" [ " << name <<
" --> ___ (" << Ra::Core::Utils::simplifiedDemangledType<T>()
std::enable_if<!std::numeric_limits< T >::is_integer, bool >::type areApproxEqual(T x, T y, T espilonBoostFactor=T(10))
Compare two numbers such that |x-y| < espilon*epsilonBoostFactor.
Types, list of types as Ra::Core::Utils::TypeList< ... >
https://gist.github.com/szymek156/9b1b90fe474277be4641e9ef4666f472