Misalignment.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_UTIL_MISALIGNMENT_H_
36 #define _BLAZE_UTIL_MISALIGNMENT_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
43 #include <blaze/system/Inline.h>
44 #include <blaze/util/Types.h>
46 
47 
48 namespace blaze {
49 
50 //=================================================================================================
51 //
52 // SIZETRAIT CLASS DEFINITION
53 //
54 //=================================================================================================
55 
56 //*************************************************************************************************
67 template< typename T >
68 BLAZE_ALWAYS_INLINE size_t misalignment( const T* address )
69 {
70  return ( reinterpret_cast<size_t>( address ) % AlignmentOf<T>::value );
71 }
72 //*************************************************************************************************
73 
74 } // namespace blaze
75 
76 #endif
BLAZE_ALWAYS_INLINE size_t misalignment(const T *address)
Computes the misalignment of the given address.
Definition: Misalignment.h:68
Header file for the AlignmentOf type trait.
Header file for basic type definitions.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
#define BLAZE_ALWAYS_INLINE
Platform dependent setup of an enforced inline keyword.
Definition: Inline.h:85
System settings for the inline keywords.
Evaluation of the required alignment of the given data type.The AlignmentOf type trait template evalu...
Definition: AlignmentOf.h:207