Commit cc74ac5d by Paolo Carlini Committed by Paolo Carlini

hashtable_policy.h (struct _Ebo_helper<>): Don't use _N, badname on Solaris;…

hashtable_policy.h (struct _Ebo_helper<>): Don't use _N, badname on Solaris; minor stylistic changes.

2011-12-29  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/hashtable_policy.h (struct _Ebo_helper<>): Don't use
	_N, badname on Solaris; minor stylistic changes.

From-SVN: r182734
parent 567210bc
2011-12-29 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/hashtable_policy.h (struct _Ebo_helper<>): Don't use
_N, badname on Solaris; minor stylistic changes.
2011-12-29 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/51608
......
......@@ -515,45 +515,45 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// Helper class using EBO when it is not forbidden, type is not final,
// and when it worth it, type is empty.
template<int _N, typename _Tp,
template<int _Nm, typename _Tp,
bool __use_ebo = !__is_final(_Tp) && __is_empty(_Tp)>
struct _Ebo_helper;
// Specialization using EBO
template<int _N, typename _Tp>
struct _Ebo_helper<_N, _Tp, true> : _Tp
// Specialization using EBO.
template<int _Nm, typename _Tp>
struct _Ebo_helper<_Nm, _Tp, true> : _Tp
{
_Ebo_helper() = default;
_Ebo_helper(const _Tp& __tp) : _Tp(__tp)
{ }
static const _Tp&
_S_cget(const _Ebo_helper<_N, _Tp, true>& __eboh)
_S_cget(const _Ebo_helper& __eboh)
{ return static_cast<const _Tp&>(__eboh); }
static _Tp&
_S_get(_Ebo_helper<_N, _Tp, true>& __eboh)
_S_get(_Ebo_helper& __eboh)
{ return static_cast<_Tp&>(__eboh); }
};
// Specialization not using EBO
template<int _N, typename _Tp>
struct _Ebo_helper<_N, _Tp, false>
// Specialization not using EBO.
template<int _Nm, typename _Tp>
struct _Ebo_helper<_Nm, _Tp, false>
{
_Ebo_helper() = default;
_Ebo_helper(const _Tp& __tp) : m_tp(__tp)
_Ebo_helper(const _Tp& __tp) : __m_tp(__tp)
{ }
static const _Tp&
_S_cget(const _Ebo_helper<_N, _Tp, false>& __eboh)
{ return __eboh.m_tp; }
_S_cget(const _Ebo_helper& __eboh)
{ return __eboh.__m_tp; }
static _Tp&
_S_get(_Ebo_helper<_N, _Tp, false>& __eboh)
{ return __eboh.m_tp; }
_S_get(_Ebo_helper& __eboh)
{ return __eboh.__m_tp; }
private:
_Tp m_tp;
_Tp __m_tp;
};
// Class template _Hash_code_base. Encapsulates two policy issues that
......
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