Example #1
0
 inline static constexpr SizeT getIdxOf()
 {
     SSVU_ASSERT_STATIC_NM(has<T>());
     return Impl::IdxOf<T, Ts...>{};
 }
Example #2
0
	/// @brief Returns a `const TBase*` casted to `const T*`. Asserts that `T` is derived from `TBase`.
	template<typename T, typename TBase> inline const T* castUp(const TBase* mBase) noexcept { SSVU_ASSERT_STATIC_NM(isSameOrBaseOf<TBase, T>()); return static_cast<const T*>(mBase); }
Example #3
0
 inline constexpr decltype(auto) mv(T&& mX) noexcept
 {
     SSVU_ASSERT_STATIC_NM(!isConst<RmRef<T>>());
     return std::move(mX);
 }
Example #4
0
	/// @brief Returns a `TBase&` casted to `T&`. Asserts that `T` is derived from `TBase`.
	template<typename T, typename TBase> inline T& castUp(TBase& mBase) noexcept { SSVU_ASSERT_STATIC_NM(isSameOrBaseOf<TBase, T>()); return static_cast<T&>(mBase); }