constructor_destructor_no_store_hash_fn_imps.hpp revision 169691
12061Sjkh// -*- C++ -*-
250479Speter
32061Sjkh// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
438666Sjb//
532427Sjb// This file is part of the GNU ISO C++ Library.  This library is free
6111131Sru// software; you can redistribute it and/or modify it under the terms
7111131Sru// of the GNU General Public License as published by the Free Software
838666Sjb// Foundation; either version 2, or (at your option) any later
938666Sjb// version.
1038666Sjb
1138666Sjb// This library is distributed in the hope that it will be useful, but
1264049Salex// WITHOUT ANY WARRANTY; without even the implied warranty of
1364049Salex// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14116679Ssimokawa// General Public License for more details.
1566071Smarkm
16116679Ssimokawa// You should have received a copy of the GNU General Public License
1773504Sobrien// along with this library; see the file COPYING.  If not, write to
1838666Sjb// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
1932427Sjb// MA 02111-1307, USA.
2038666Sjb
21108451Sschweikh// As a special exception, you may use this file as part of a free
2238666Sjb// software library without restriction.  Specifically, if other files
2338666Sjb// instantiate templates or use macros or inline functions from this
2438666Sjb// file, or you compile this file and link it with other files to
2538666Sjb// produce an executable, this file does not by itself cause the
2617308Speter// resulting executable to be covered by the GNU General Public
2791606Skeramida// License.  This exception does not however invalidate any other
2819175Sbde// reasons why the executable file might be covered by the GNU General
2996205Sjwd// Public License.
3096205Sjwd
3138042Sbde// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
3296205Sjwd
3396205Sjwd// Permission to use, copy, modify, sell, and distribute this software
3438042Sbde// is hereby granted without fee, provided that the above copyright
3596205Sjwd// notice appears in all copies, and that both that copyright notice
3696205Sjwd// and this permission notice appear in supporting documentation. None
3717308Speter// of the above authors, nor IBM Haifa Research Laboratories, make any
3896205Sjwd// representation about the suitability of this software for any
3996205Sjwd// purpose. It is provided "as is" without express or implied
4017308Speter// warranty.
4196205Sjwd
4296205Sjwd/**
4396205Sjwd * @file constructor_destructor_no_store_hash_fn_imps.hpp
4496205Sjwd * Contains implementations of gp_ht_map_'s constructors, destructor,
4596205Sjwd *    and related functions.
4696205Sjwd */
4796205Sjwd
4896205SjwdPB_DS_CLASS_T_DEC
4996205Sjwdinline void
5096205SjwdPB_DS_CLASS_C_DEC::
5196205Sjwdconstructor_insert_new_imp(const_mapped_reference r_val, size_type pos,
5296205Sjwd			   false_type)
5398775Sdillon{
5498723Sdillon  _GLIBCXX_DEBUG_ASSERT(m_entries[pos].m_stat != valid_entry_status)k;
5598723Sdillon  entry* const p_e = m_entries + pos;
5698723Sdillon  new (&p_e->m_value) mapped_value_type(r_val);
5798723Sdillon  p_e->m_stat = valid_entry_status;
5838666Sjb  _GLIBCXX_DEBUG_ONLY(map_debug_base::insert_new(p_e->m_value.first);)
5938666Sjb}
6017308Speter