Commit b62c62f4 by Marc Glisse Committed by Marc Glisse

re PR libstdc++/59087 (Issues including complex.h in C++11/1y mode because of C's complex.h)

2013-11-13  Marc Glisse  <marc.glisse@inria.fr>

	PR libstdc++/59087
	* include/ext/pod_char_traits.h: Uglify V, I and S.

From-SVN: r204750
parent 5c1e70a6
2013-11-13 Marc Glisse <marc.glisse@inria.fr>
PR libstdc++/59087
* include/ext/pod_char_traits.h: Uglify V, I and S.
2013-11-11 Jonathan Wakely <jwakely.gcc@gmail.com> 2013-11-11 Jonathan Wakely <jwakely.gcc@gmail.com>
PR libstdc++/54562 PR libstdc++/54562
......
...@@ -45,13 +45,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -45,13 +45,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// int_type to properly hold the full range of char_type values as // int_type to properly hold the full range of char_type values as
// well as EOF. // well as EOF.
/// @brief A POD class that serves as a character abstraction class. /// @brief A POD class that serves as a character abstraction class.
template<typename V, typename I, typename S = std::mbstate_t> template<typename _Value, typename _Int, typename _St = std::mbstate_t>
struct character struct character
{ {
typedef V value_type; typedef _Value value_type;
typedef I int_type; typedef _Int int_type;
typedef S state_type; typedef _St state_type;
typedef character<V, I, S> char_type; typedef character<_Value, _Int, _St> char_type;
value_type value; value_type value;
...@@ -73,14 +73,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -73,14 +73,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}; };
template<typename V, typename I, typename S> template<typename _Value, typename _Int, typename _St>
inline bool inline bool
operator==(const character<V, I, S>& lhs, const character<V, I, S>& rhs) operator==(const character<_Value, _Int, _St>& lhs,
const character<_Value, _Int, _St>& rhs)
{ return lhs.value == rhs.value; } { return lhs.value == rhs.value; }
template<typename V, typename I, typename S> template<typename _Value, typename _Int, typename _St>
inline bool inline bool
operator<(const character<V, I, S>& lhs, const character<V, I, S>& rhs) operator<(const character<_Value, _Int, _St>& lhs,
const character<_Value, _Int, _St>& rhs)
{ return lhs.value < rhs.value; } { return lhs.value < rhs.value; }
_GLIBCXX_END_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION
...@@ -91,14 +93,14 @@ namespace std _GLIBCXX_VISIBILITY(default) ...@@ -91,14 +93,14 @@ namespace std _GLIBCXX_VISIBILITY(default)
_GLIBCXX_BEGIN_NAMESPACE_VERSION _GLIBCXX_BEGIN_NAMESPACE_VERSION
/// char_traits<__gnu_cxx::character> specialization. /// char_traits<__gnu_cxx::character> specialization.
template<typename V, typename I, typename S> template<typename _Value, typename _Int, typename _St>
struct char_traits<__gnu_cxx::character<V, I, S> > struct char_traits<__gnu_cxx::character<_Value, _Int, _St> >
{ {
typedef __gnu_cxx::character<V, I, S> char_type; typedef __gnu_cxx::character<_Value, _Int, _St> char_type;
typedef typename char_type::int_type int_type; typedef typename char_type::int_type int_type;
typedef typename char_type::state_type state_type; typedef typename char_type::state_type state_type;
typedef fpos<state_type> pos_type; typedef fpos<state_type> pos_type;
typedef streamoff off_type; typedef streamoff off_type;
static void static void
assign(char_type& __c1, const char_type& __c2) assign(char_type& __c1, const char_type& __c2)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment