mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-13 20:26:03 +08:00
bug #829: Introduce macro EIGEN_HAS_CXX11_CONTAINERS and do not specialize std-containers if it is enabled.
This commit is contained in:
parent
a5d1bb2be8
commit
712e2fed17
@ -370,6 +370,15 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Does the compiler support proper C++11 containers?
|
||||||
|
#ifndef EIGEN_HAS_CXX11_CONTAINERS
|
||||||
|
#if ((__cplusplus >= 201103L) && (EIGEN_COMP_GNUC_STRICT || EIGEN_COMP_CLANG)) || EIGEN_COMP_MSVC >= 1900
|
||||||
|
#define EIGEN_HAS_CXX11_CONTAINERS 1
|
||||||
|
#else
|
||||||
|
#define EIGEN_HAS_CXX11_CONTAINERS 0
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
/** Allows to disable some optimizations which might affect the accuracy of the result.
|
/** Allows to disable some optimizations which might affect the accuracy of the result.
|
||||||
* Such optimization are enabled by default, and set EIGEN_FAST_MATH to 0 to disable them.
|
* Such optimization are enabled by default, and set EIGEN_FAST_MATH to 0 to disable them.
|
||||||
* They currently include:
|
* They currently include:
|
||||||
|
@ -53,7 +53,7 @@ namespace std \
|
|||||||
}
|
}
|
||||||
|
|
||||||
// check whether we really need the std::deque specialization
|
// check whether we really need the std::deque specialization
|
||||||
#if !(defined(_GLIBCXX_DEQUE) && (!EIGEN_GNUC_AT_LEAST(4,1))) /* Note that before gcc-4.1 we already have: std::deque::resize(size_type,const T&). */
|
#if !EIGEN_HAS_CXX11_CONTAINERS && !(defined(_GLIBCXX_DEQUE) && (!EIGEN_GNUC_AT_LEAST(4,1))) /* Note that before gcc-4.1 we already have: std::deque::resize(size_type,const T&). */
|
||||||
|
|
||||||
namespace std {
|
namespace std {
|
||||||
|
|
||||||
|
@ -51,8 +51,8 @@ namespace std \
|
|||||||
}; \
|
}; \
|
||||||
}
|
}
|
||||||
|
|
||||||
// check whether we really need the std::vector specialization
|
// check whether we really need the std::list specialization
|
||||||
#if !(defined(_GLIBCXX_VECTOR) && (!EIGEN_GNUC_AT_LEAST(4,1))) /* Note that before gcc-4.1 we already have: std::list::resize(size_type,const T&). */
|
#if !EIGEN_HAS_CXX11_CONTAINERS && !(defined(_GLIBCXX_LIST) && (!EIGEN_GNUC_AT_LEAST(4,1))) /* Note that before gcc-4.1 we already have: std::list::resize(size_type,const T&). */
|
||||||
|
|
||||||
namespace std
|
namespace std
|
||||||
{
|
{
|
||||||
|
@ -44,6 +44,9 @@ namespace std \
|
|||||||
}; \
|
}; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Don't specialize if containers are implemented according to C++11
|
||||||
|
#if !EIGEN_HAS_CXX11_CONTAINERS
|
||||||
|
|
||||||
namespace std {
|
namespace std {
|
||||||
|
|
||||||
#define EIGEN_STD_VECTOR_SPECIALIZATION_BODY \
|
#define EIGEN_STD_VECTOR_SPECIALIZATION_BODY \
|
||||||
@ -122,5 +125,7 @@ namespace std {
|
|||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
#endif // !EIGEN_HAS_CXX11_CONTAINERS
|
||||||
|
|
||||||
|
|
||||||
#endif // EIGEN_STDVECTOR_H
|
#endif // EIGEN_STDVECTOR_H
|
||||||
|
Loading…
x
Reference in New Issue
Block a user