11 #ifndef EIGEN_STL_DETAILS_H    12 #define EIGEN_STL_DETAILS_H    14 #ifndef EIGEN_ALIGNED_ALLOCATOR    15   #define EIGEN_ALIGNED_ALLOCATOR Eigen::aligned_allocator    54 #define EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T) \    55   typename Eigen::internal::conditional< \    56     Eigen::internal::is_arithmetic<T>::value, \    58     Eigen::internal::workaround_msvc_stl_support<T> \    62   template<
typename T> 
struct workaround_msvc_stl_support : 
public T
    64     inline workaround_msvc_stl_support() : T() {}
    65     inline workaround_msvc_stl_support(
const T& 
other) : T(other) {}
    66     inline operator T& () { 
return *
static_cast<T*
>(
this); }
    67     inline operator const T& () 
const { 
return *
static_cast<const T*
>(
this); }
    68     template<
typename OtherT>
    69     inline T& operator=(
const OtherT& other)
    70     { T::operator=(other); 
return *
this; }
    71     inline workaround_msvc_stl_support& operator=(
const workaround_msvc_stl_support& other)
    72     { T::operator=(other); 
return *
this; }
    78 #define EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T) T    84 #endif // EIGEN_STL_DETAILS_H aligned_allocator_indirection()
aligned_allocator_indirection(const EIGEN_ALIGNED_ALLOCATOR< T > &)
aligned_allocator_indirection(const aligned_allocator_indirection &)
~aligned_allocator_indirection()
aligned_allocator_indirection< U > other
#define EIGEN_ALIGNED_ALLOCATOR
aligned_allocator_indirection(const EIGEN_ALIGNED_ALLOCATOR< U > &)
const T & const_reference
ptrdiff_t difference_type
aligned_allocator_indirection(const aligned_allocator_indirection< U > &)