Disabling some optimisations for sun cc

Bug described in #6462

[SVN r76824]
This commit is contained in:
Antony Polukhin
2012-02-01 17:08:10 +00:00
parent c9863cd254
commit 7a48fea517

View File

@@ -72,7 +72,9 @@ _CRTIMP int __cdecl vswprintf(wchar_t * __restrict__ , const wchar_t * __restric
#include <boost/static_assert.hpp> #include <boost/static_assert.hpp>
#include <boost/detail/lcast_precision.hpp> #include <boost/detail/lcast_precision.hpp>
#include <boost/detail/workaround.hpp> #include <boost/detail/workaround.hpp>
#if !defined(__SUNPRO_CC)
#include <boost/container/container_fwd.hpp> #include <boost/container/container_fwd.hpp>
#endif // !defined(__SUNPRO_CC)
#ifndef BOOST_NO_CWCHAR #ifndef BOOST_NO_CWCHAR
# include <cwchar> # include <cwchar>
#endif #endif
@@ -170,11 +172,13 @@ namespace boost
typedef CharT type; typedef CharT type;
}; };
#if !defined(__SUNPRO_CC)
template<class CharT, class Traits, class Alloc> template<class CharT, class Traits, class Alloc>
struct stream_char< ::boost::container::basic_string<CharT,Traits,Alloc> > struct stream_char< ::boost::container::basic_string<CharT,Traits,Alloc> >
{ {
typedef CharT type; typedef CharT type;
}; };
#endif // !defined(__SUNPRO_CC)
#endif #endif
#ifndef BOOST_LCAST_NO_WCHAR_T #ifndef BOOST_LCAST_NO_WCHAR_T
@@ -289,6 +293,7 @@ namespace boost
typedef Traits type; typedef Traits type;
}; };
#if !defined(__SUNPRO_CC)
template<class CharT, class Traits, class Alloc, class Source> template<class CharT, class Traits, class Alloc, class Source>
struct deduce_char_traits< CharT struct deduce_char_traits< CharT
, ::boost::container::basic_string<CharT,Traits,Alloc> , ::boost::container::basic_string<CharT,Traits,Alloc>
@@ -342,6 +347,7 @@ namespace boost
{ {
typedef Traits type; typedef Traits type;
}; };
#endif // !defined(__SUNPRO_CC)
#endif #endif
} }
@@ -1364,6 +1370,7 @@ namespace boost
return true; return true;
} }
#if !defined(__SUNPRO_CC)
template<class Alloc> template<class Alloc>
bool operator<<(::boost::container::basic_string<CharT,Traits,Alloc> const& str) bool operator<<(::boost::container::basic_string<CharT,Traits,Alloc> const& str)
{ {
@@ -1371,7 +1378,7 @@ namespace boost
finish = start + str.length(); finish = start + str.length();
return true; return true;
} }
#endif // !defined(__SUNPRO_CC)
bool operator<<(bool value) bool operator<<(bool value)
{ {
CharT const czero = lcast_char_constants<CharT>::zero; CharT const czero = lcast_char_constants<CharT>::zero;
@@ -1588,9 +1595,10 @@ namespace boost
#else #else
template<class Alloc> template<class Alloc>
bool operator>>(std::basic_string<CharT,Traits,Alloc>& str) { str.assign(start, finish); return true; } bool operator>>(std::basic_string<CharT,Traits,Alloc>& str) { str.assign(start, finish); return true; }
#if !defined(__SUNPRO_CC)
template<class Alloc> template<class Alloc>
bool operator>>(::boost::container::basic_string<CharT,Traits,Alloc>& str) { str.assign(start, finish); return true; } bool operator>>(::boost::container::basic_string<CharT,Traits,Alloc>& str) { str.assign(start, finish); return true; }
#endif // !defined(__SUNPRO_CC)
#endif #endif
/* /*
* case "-0" || "0" || "+0" : output = false; return true; * case "-0" || "0" || "+0" : output = false; return true;
@@ -1726,13 +1734,13 @@ namespace boost
{ {
BOOST_STATIC_CONSTANT(bool, value = true ); BOOST_STATIC_CONSTANT(bool, value = true );
}; };
#if !defined(__SUNPRO_CC)
template<typename CharT, typename Traits, typename Alloc> template<typename CharT, typename Traits, typename Alloc>
struct is_stdstring< ::boost::container::basic_string<CharT, Traits, Alloc> > struct is_stdstring< ::boost::container::basic_string<CharT, Traits, Alloc> >
{ {
BOOST_STATIC_CONSTANT(bool, value = true ); BOOST_STATIC_CONSTANT(bool, value = true );
}; };
#endif // !defined(__SUNPRO_CC)
template<typename T> template<typename T>
struct is_char_or_wchar struct is_char_or_wchar
{ {
@@ -1832,7 +1840,7 @@ namespace boost
{ {
BOOST_STATIC_CONSTANT(bool, value = true ); BOOST_STATIC_CONSTANT(bool, value = true );
}; };
#if !defined(__SUNPRO_CC)
template<typename CharT, typename Traits, typename Alloc> template<typename CharT, typename Traits, typename Alloc>
struct is_char_array_to_stdstring< ::boost::container::basic_string<CharT, Traits, Alloc>, CharT* > struct is_char_array_to_stdstring< ::boost::container::basic_string<CharT, Traits, Alloc>, CharT* >
{ {
@@ -1844,6 +1852,7 @@ namespace boost
{ {
BOOST_STATIC_CONSTANT(bool, value = true ); BOOST_STATIC_CONSTANT(bool, value = true );
}; };
#endif // !defined(__SUNPRO_CC)
#if (defined _MSC_VER) #if (defined _MSC_VER)
# pragma warning( push ) # pragma warning( push )