mirror of
				https://git.tardis.systems/mirrors/yuzu
				synced 2025-10-31 02:34:11 +01:00 
			
		
		
		
	common: parent_of_member: Fix build for OffsetOf().
This commit is contained in:
		
							parent
							
								
									27a6ef64fd
								
							
						
					
					
						commit
						e02785be83
					
				| @ -133,27 +133,27 @@ template <auto MemberPtr> | ||||
| using GetMemberType = typename GetMemberPointerTraits<decltype(MemberPtr)>::Member; | ||||
| 
 | ||||
| template <auto MemberPtr, typename RealParentType = GetParentType<MemberPtr>> | ||||
| static inline std::ptrdiff_t OffsetOf = [] { | ||||
| constexpr std::ptrdiff_t OffsetOf() { | ||||
|     using DeducedParentType = GetParentType<MemberPtr>; | ||||
|     using MemberType = GetMemberType<MemberPtr>; | ||||
|     static_assert(std::is_base_of<DeducedParentType, RealParentType>::value || | ||||
|                   std::is_same<RealParentType, DeducedParentType>::value); | ||||
| 
 | ||||
|     return OffsetOfCalculator<RealParentType, MemberType>::OffsetOf(MemberPtr); | ||||
| }(); | ||||
| }; | ||||
| 
 | ||||
| } // namespace impl
 | ||||
| 
 | ||||
| template <auto MemberPtr, typename RealParentType = impl::GetParentType<MemberPtr>> | ||||
| constexpr RealParentType& GetParentReference(impl::GetMemberType<MemberPtr>* member) { | ||||
|     std::ptrdiff_t Offset = impl::OffsetOf<MemberPtr, RealParentType>; | ||||
|     std::ptrdiff_t Offset = impl::OffsetOf<MemberPtr, RealParentType>(); | ||||
|     return *static_cast<RealParentType*>( | ||||
|         static_cast<void*>(static_cast<uint8_t*>(static_cast<void*>(member)) - Offset)); | ||||
| } | ||||
| 
 | ||||
| template <auto MemberPtr, typename RealParentType = impl::GetParentType<MemberPtr>> | ||||
| constexpr RealParentType const& GetParentReference(impl::GetMemberType<MemberPtr> const* member) { | ||||
|     std::ptrdiff_t Offset = impl::OffsetOf<MemberPtr, RealParentType>; | ||||
|     std::ptrdiff_t Offset = impl::OffsetOf<MemberPtr, RealParentType>(); | ||||
|     return *static_cast<const RealParentType*>(static_cast<const void*>( | ||||
|         static_cast<const uint8_t*>(static_cast<const void*>(member)) - Offset)); | ||||
| } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user