#pragma once #include namespace floormat::entities { template struct pass_by_value : std::bool_constant> {}; template<> struct pass_by_value : std::true_type {}; template struct pass_by_value && sizeof(T) <= sizeof(void*)>> : std::true_type {}; template constexpr inline bool pass_by_value_v = pass_by_value::value; template using const_qualified = std::conditional_t, T, const T&>; template using ref_qualified = std::conditional_t, T, T&>; template using move_qualified = std::conditional_t, T, T&&>; } // namespace floormat::entities