mirror of
https://github.com/boostorg/ublas.git
synced 2026-02-21 15:32:12 +00:00
MSVC workarounds only for 6.0 and 7.0
svn path=/trunk/boost/boost/numeric/ublas/; revision=24477
This commit is contained in:
@@ -860,7 +860,7 @@ namespace boost { namespace numeric { namespace ublas {
|
||||
ZeroElement (double) {
|
||||
return 0.;
|
||||
}
|
||||
#ifndef BOOST_MSVC
|
||||
#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300)
|
||||
template<>
|
||||
std::complex<float>
|
||||
ZeroElement (std::complex<float>) {
|
||||
@@ -882,7 +882,7 @@ namespace boost { namespace numeric { namespace ublas {
|
||||
ZeroElement (vector<double>) {
|
||||
return zero_vector<double> ();
|
||||
}
|
||||
#ifndef BOOST_MSVC
|
||||
#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300)
|
||||
template<>
|
||||
vector<std::complex<float> >
|
||||
ZeroElement (vector<std::complex<float> >) {
|
||||
@@ -904,7 +904,7 @@ namespace boost { namespace numeric { namespace ublas {
|
||||
ZeroElement (matrix<double>) {
|
||||
return zero_matrix<double> ();
|
||||
}
|
||||
#ifndef BOOST_MSVC
|
||||
#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300)
|
||||
template<>
|
||||
matrix<std::complex<float> >
|
||||
ZeroElement (matrix<std::complex<float> >) {
|
||||
@@ -930,7 +930,7 @@ namespace boost { namespace numeric { namespace ublas {
|
||||
OneElement (double) {
|
||||
return 1.;
|
||||
}
|
||||
#ifndef BOOST_MSVC
|
||||
#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300)
|
||||
template<>
|
||||
std::complex<float>
|
||||
OneElement (std::complex<float>) {
|
||||
@@ -952,7 +952,7 @@ namespace boost { namespace numeric { namespace ublas {
|
||||
OneElement (matrix<double>) {
|
||||
return identity_matrix<double> ();
|
||||
}
|
||||
#ifndef BOOST_MSVC
|
||||
#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300)
|
||||
template<>
|
||||
matrix<std::complex<float> >
|
||||
OneElement (matrix<std::complex<float> >) {
|
||||
@@ -1631,7 +1631,7 @@ namespace boost { namespace numeric { namespace ublas {
|
||||
VectorSpaceConcept<double, matrix<double> >::constraints ();
|
||||
LinearOperatorConcept<double, vector<double>, matrix<double> >::constraints ();
|
||||
|
||||
#ifndef BOOST_MSVC
|
||||
#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300)
|
||||
AdditiveAbelianGroupConcept<std::complex<float> >::constraints ();
|
||||
CommutativeRingWithIdentityConcept<std::complex<float> >::constraints ();
|
||||
FieldConcept<std::complex<float> >::constraints ();
|
||||
|
||||
@@ -2819,7 +2819,7 @@ namespace boost { namespace numeric { namespace ublas {
|
||||
public iterator_base_traits<typename const_iterator1_type::iterator_category>::template
|
||||
iterator_base<const_iterator1, value_type>::type {
|
||||
#else
|
||||
#ifndef BOOST_MSVC
|
||||
#if !(defined(BOOST_MSVC) && BOOST_MSVC < 1300)
|
||||
public random_access_iterator_base<typename const_iterator1_type::iterator_category,
|
||||
const_iterator1, value_type> {
|
||||
#else
|
||||
@@ -2964,7 +2964,7 @@ namespace boost { namespace numeric { namespace ublas {
|
||||
public iterator_base_traits<typename iterator1_type::iterator_category>::template
|
||||
iterator_base<iterator1, value_type>::type {
|
||||
#else
|
||||
#ifndef BOOST_MSVC
|
||||
#if !(defined(BOOST_MSVC) && BOOST_MSVC < 1300)
|
||||
public random_access_iterator_base<typename iterator1_type::iterator_category,
|
||||
iterator1, value_type> {
|
||||
#else
|
||||
@@ -3108,7 +3108,7 @@ namespace boost { namespace numeric { namespace ublas {
|
||||
public iterator_base_traits<typename const_iterator2_type::iterator_category>::template
|
||||
iterator_base<const_iterator2, value_type>::type {
|
||||
#else
|
||||
#ifndef BOOST_MSVC
|
||||
#if !(defined(BOOST_MSVC) && BOOST_MSVC < 1300)
|
||||
public random_access_iterator_base<typename const_iterator2_type::iterator_category,
|
||||
const_iterator2, value_type> {
|
||||
#else
|
||||
@@ -3253,7 +3253,7 @@ namespace boost { namespace numeric { namespace ublas {
|
||||
public iterator_base_traits<typename iterator2_type::iterator_category>::template
|
||||
iterator_base<iterator2, value_type>::type {
|
||||
#else
|
||||
#ifndef BOOST_MSVC
|
||||
#if !(defined(BOOST_MSVC) && BOOST_MSVC < 1300)
|
||||
public random_access_iterator_base<typename iterator2_type::iterator_category,
|
||||
iterator2, value_type> {
|
||||
#else
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
namespace boost { namespace numeric { namespace ublas {
|
||||
|
||||
// MSVC 6.0 gets confused by the forward declarations.
|
||||
#ifndef BOOST_MSVC
|
||||
#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300)
|
||||
|
||||
template < typename V >
|
||||
BOOST_UBLAS_INLINE
|
||||
@@ -141,8 +141,8 @@ namespace boost { namespace numeric { namespace ublas {
|
||||
BOOST_UBLAS_INLINE
|
||||
typename c_vector<T, N>::const_pointer data( const c_vector<T, N> &v ) ;
|
||||
#endif
|
||||
#ifndef BOOST_MSVC
|
||||
// We need data_const() mostly due to MSVC 6.0.
|
||||
#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300)
|
||||
// We need data_const() mostly due to MSVC
|
||||
// But how shall we write portable code otherwise?
|
||||
template < typename T, std::size_t N >
|
||||
BOOST_UBLAS_INLINE
|
||||
@@ -194,8 +194,8 @@ namespace boost { namespace numeric { namespace ublas {
|
||||
BOOST_UBLAS_INLINE
|
||||
typename c_matrix<T, M, N>::const_pointer data( const c_matrix<T, M, N> &m ) ;
|
||||
#endif
|
||||
#ifndef BOOST_MSVC
|
||||
// We need data_const() mostly due to MSVC 6.0.
|
||||
#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300)
|
||||
// We need data_const() mostly due to MSVC
|
||||
// But how shall we write portable code otherwise?
|
||||
template < typename T, std::size_t M, std::size_t N >
|
||||
BOOST_UBLAS_INLINE
|
||||
@@ -284,8 +284,8 @@ namespace boost { namespace numeric { namespace ublas {
|
||||
BOOST_UBLAS_INLINE
|
||||
typename c_vector<T, N>::const_pointer base( const c_vector<T, N> &v ) ;
|
||||
#endif
|
||||
#ifndef BOOST_MSVC
|
||||
// We need base_const() mostly due to MSVC 6.0.
|
||||
#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300)
|
||||
// We need base_const() mostly due to MSVC
|
||||
// But how shall we write portable code otherwise?
|
||||
template < typename T, std::size_t N >
|
||||
BOOST_UBLAS_INLINE
|
||||
@@ -337,8 +337,8 @@ namespace boost { namespace numeric { namespace ublas {
|
||||
BOOST_UBLAS_INLINE
|
||||
typename c_matrix<T, M, N>::const_pointer base( const c_matrix<T, M, N> &m ) ;
|
||||
#endif
|
||||
#ifndef BOOST_MSVC
|
||||
// We need base_const() mostly due to MSVC 6.0.
|
||||
#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300)
|
||||
// We need base_const() mostly due to MSVC
|
||||
// But how shall we write portable code otherwise?
|
||||
template < typename T, std::size_t M, std::size_t N >
|
||||
BOOST_UBLAS_INLINE
|
||||
@@ -610,8 +610,8 @@ namespace boost { namespace numeric { namespace ublas {
|
||||
return v.data() ;
|
||||
}
|
||||
#endif
|
||||
#ifndef BOOST_MSVC
|
||||
// We need data_const() mostly due to MSVC 6.0.
|
||||
#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300)
|
||||
// We need data_const() mostly due to MSVC
|
||||
// But how shall we write portable code otherwise?
|
||||
template < typename T, std::size_t N >
|
||||
BOOST_UBLAS_INLINE
|
||||
@@ -687,8 +687,8 @@ namespace boost { namespace numeric { namespace ublas {
|
||||
return m.data() ;
|
||||
}
|
||||
#endif
|
||||
#ifndef BOOST_MSVC
|
||||
// We need data_const() mostly due to MSVC 6.0.
|
||||
#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300)
|
||||
// We need data_const() mostly due to MSVC
|
||||
// But how shall we write portable code otherwise?
|
||||
template < typename T, std::size_t M, std::size_t N >
|
||||
BOOST_UBLAS_INLINE
|
||||
@@ -819,8 +819,8 @@ namespace boost { namespace numeric { namespace ublas {
|
||||
return v.data() ;
|
||||
}
|
||||
#endif
|
||||
#ifndef BOOST_MSVC
|
||||
// We need base_const() mostly due to MSVC 6.0.
|
||||
#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300)
|
||||
// We need base_const() mostly due to MSVC
|
||||
// But how shall we write portable code otherwise?
|
||||
template < typename T, std::size_t N >
|
||||
BOOST_UBLAS_INLINE
|
||||
@@ -896,8 +896,8 @@ namespace boost { namespace numeric { namespace ublas {
|
||||
return m.data() ;
|
||||
}
|
||||
#endif
|
||||
#ifndef BOOST_MSVC
|
||||
// We need base_const() mostly due to MSVC 6.0.
|
||||
#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300)
|
||||
// We need base_const() mostly due to MSVC
|
||||
// But how shall we write portable code otherwise?
|
||||
template < typename T, std::size_t M, std::size_t N >
|
||||
BOOST_UBLAS_INLINE
|
||||
|
||||
@@ -281,7 +281,7 @@ namespace boost { namespace numeric { namespace ublas {
|
||||
public iterator_base_traits<typename const_iterator_type::iterator_category>::template
|
||||
iterator_base<const_iterator, value_type>::type {
|
||||
#else
|
||||
#ifndef BOOST_MSVC
|
||||
#if !(defined(BOOST_MSVC) && BOOST_MSVC < 1300)
|
||||
public random_access_iterator_base<typename const_iterator_type::iterator_category,
|
||||
const_iterator, value_type> {
|
||||
#else
|
||||
@@ -394,7 +394,7 @@ namespace boost { namespace numeric { namespace ublas {
|
||||
public iterator_base_traits<typename iterator_type::iterator_category>::template
|
||||
iterator_base<iterator, value_type>::type {
|
||||
#else
|
||||
#ifndef BOOST_MSVC
|
||||
#if !(defined(BOOST_MSVC) && BOOST_MSVC < 1300)
|
||||
public random_access_iterator_base<typename iterator_type::iterator_category,
|
||||
iterator, value_type> {
|
||||
#else
|
||||
@@ -1053,7 +1053,7 @@ return true;
|
||||
return reverse_iterator (begin ());
|
||||
}
|
||||
|
||||
#if defined(BOOST_MSVC) && (BOOST_MSVC <= 1300)
|
||||
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
||||
// VC++ 6.0 cannot access data_ from iterator
|
||||
private:
|
||||
#endif
|
||||
@@ -1598,7 +1598,7 @@ return true;
|
||||
return reverse_iterator (begin ());
|
||||
}
|
||||
|
||||
#if defined(BOOST_MSVC) && (BOOST_MSVC <= 1300)
|
||||
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
||||
// VC++ 6.0 cannot access data_ from iterator
|
||||
private:
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user