2003-11-11 20:09:16 +00:00
|
|
|
// Debugging support implementation -*- C++ -*-
|
|
|
|
|
cpp_type_traits.h: Add types to the structs thus making type_traits.h redundant...
2005-01-31 Paolo Carlini <pcarlini@suse.de>
Gabriel Dos Reis <gdr@integrable-solutions.net>
* include/bits/cpp_type_traits.h: Add types to the structs thus
making type_traits.h redundant; exploit new __truth_type and
__traitor helpers.
* include/bits/type_traits.h: Remove.
* include/Makefile.am: Update.
* include/Makefile.in: Regenerate.
* include/backward/tempbuf.h: Include cpp_type_traits.h instead.
* include/bits/basic_string.h (replace(iterator, iterator,
_InputIterator, _InputIterator), _S_construct(_InIterator,
_InIterator, const _Alloc&)): Use __is_integer instead.
* include/bits/stl_bvector.h (vector(_InputIterator,
_InputIterator, const allocator_type&), assign(_InputIterator,
_InputIterator), insert(iterator, _InputIterator, _InputIterator)):
Likewise.
* include/bits/stl_construct.h (_Destroy(_ForwardIterator,
_ForwardIterator)): Use __is_scalar.
* include/bits/stl_deque.h (deque(_InputIterator, _InputIterator,
const allocator_type&), assign(_InputIterator, _InputIterator),
insert(iterator, _InputIterator, _InputIterator)): Use __is_integer.
* include/bits/stl_list.h (assign(_InputIterator, _InputIterator),
insert(iterator, _InputIterator, _InputIterator)): Likewise.
* include/bits/stl_tempbuf.h (_Temporary_buffer(_ForwardIterator,
_ForwardIterator)): Use __is_scalar.
* include/bits/stl_uninitialized.h (uninitialized_copy(_InputIterator,
_InputIterator, _ForwardIterator), uninitialized_fill(_ForwardIterator,
_ForwardIterator, const _Tp&), uninitialized_fill_n(_ForwardIterator,
_Size, const _Tp&)): Likewise.
* include/bits/stl_vector.h (vector(_InputIterator, _InputIterator,
const allocator_type&), assign(_InputIterator, _InputIterator),
insert(iterator, _InputIterator, _InputIterator)): Use __is_integer.
* include/debug/debug.h (__valid_range(const _InputIterator&,
const _InputIterator&)): Use __is_integer.
* include/ext/slist (assign(_InputIterator, _InputIterator)): Likewise.
* include/std/std_string.h: Include cpp_type_traits.h instead.
Co-Authored-By: Gabriel Dos Reis <gdr@integrable-solutions.net>
From-SVN: r94484
2005-01-31 16:22:01 +00:00
|
|
|
// Copyright (C) 2003, 2005
|
2003-11-11 20:09:16 +00:00
|
|
|
// Free Software Foundation, Inc.
|
|
|
|
//
|
|
|
|
// This file is part of the GNU ISO C++ Library. This library is free
|
|
|
|
// software; you can redistribute it and/or modify it under the
|
|
|
|
// terms of the GNU General Public License as published by the
|
|
|
|
// Free Software Foundation; either version 2, or (at your option)
|
|
|
|
// any later version.
|
|
|
|
|
|
|
|
// This library is distributed in the hope that it will be useful,
|
|
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
// GNU General Public License for more details.
|
|
|
|
|
|
|
|
// You should have received a copy of the GNU General Public License along
|
|
|
|
// with this library; see the file COPYING. If not, write to the Free
|
2005-08-17 02:28:44 +00:00
|
|
|
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
2003-11-11 20:09:16 +00:00
|
|
|
// USA.
|
|
|
|
|
|
|
|
// As a special exception, you may use this file as part of a free software
|
|
|
|
// library without restriction. Specifically, if other files instantiate
|
|
|
|
// templates or use macros or inline functions from this file, or you compile
|
|
|
|
// this file and link it with other files to produce an executable, this
|
|
|
|
// file does not by itself cause the resulting executable to be covered by
|
|
|
|
// the GNU General Public License. This exception does not however
|
|
|
|
// invalidate any other reasons why the executable file might be covered by
|
|
|
|
// the GNU General Public License.
|
|
|
|
|
|
|
|
#ifndef _GLIBCXX_DEBUG_DEBUG_H
|
|
|
|
#define _GLIBCXX_DEBUG_DEBUG_H 1
|
|
|
|
|
|
|
|
/** Macros used by the implementation outside of debug wrappers to
|
|
|
|
* verify certain properties. The __glibcxx_requires_xxx macros are
|
|
|
|
* merely wrappers around the __glibcxx_check_xxx wrappers when we
|
|
|
|
* are compiling with debug mode, but disappear when we are in
|
|
|
|
* release mode so that there is no checking performed in, e.g., the
|
|
|
|
* standard library algorithms.
|
|
|
|
*/
|
2005-05-27 15:01:45 +00:00
|
|
|
|
2003-11-11 20:09:16 +00:00
|
|
|
#ifdef _GLIBCXX_DEBUG
|
2005-05-27 15:01:45 +00:00
|
|
|
# include <debug/macros.h>
|
2005-05-31 18:31:55 +00:00
|
|
|
# define _GLIBCXX_DEBUG_ASSERT(_Condition) _GLIBCXX_DEBUG_ABORT(_Condition)
|
2003-11-11 20:09:16 +00:00
|
|
|
|
2005-05-10 18:30:36 +01:00
|
|
|
# ifdef _GLIBCXX_DEBUG_PEDANTIC
|
2005-05-31 18:31:55 +00:00
|
|
|
# define _GLIBCXX_DEBUG_PEDASSERT(_Condition) _GLIBCXX_DEBUG_ABORT(_Condition)
|
2003-11-11 20:09:16 +00:00
|
|
|
# else
|
|
|
|
# define _GLIBCXX_DEBUG_PEDASSERT(_Condition)
|
|
|
|
# endif
|
|
|
|
|
|
|
|
# define __glibcxx_requires_cond(_Cond,_Msg) _GLIBCXX_DEBUG_VERIFY(_Cond,_Msg)
|
|
|
|
# define __glibcxx_requires_valid_range(_First,_Last) \
|
|
|
|
__glibcxx_check_valid_range(_First,_Last)
|
|
|
|
# define __glibcxx_requires_sorted(_First,_Last) \
|
|
|
|
__glibcxx_check_sorted(_First,_Last)
|
|
|
|
# define __glibcxx_requires_sorted_pred(_First,_Last,_Pred) \
|
|
|
|
__glibcxx_check_sorted_pred(_First,_Last,_Pred)
|
|
|
|
# define __glibcxx_requires_partitioned(_First,_Last,_Value) \
|
|
|
|
__glibcxx_check_partitioned(_First,_Last,_Value)
|
|
|
|
# define __glibcxx_requires_partitioned_pred(_First,_Last,_Value,_Pred) \
|
|
|
|
__glibcxx_check_partitioned_pred(_First,_Last,_Value,_Pred)
|
|
|
|
# define __glibcxx_requires_heap(_First,_Last) \
|
|
|
|
__glibcxx_check_heap(_First,_Last)
|
|
|
|
# define __glibcxx_requires_heap_pred(_First,_Last,_Pred) \
|
|
|
|
__glibcxx_check_heap_pred(_First,_Last,_Pred)
|
|
|
|
# define __glibcxx_requires_nonempty() __glibcxx_check_nonempty()
|
|
|
|
# define __glibcxx_requires_string(_String) __glibcxx_check_string(_String)
|
|
|
|
# define __glibcxx_requires_string_len(_String,_Len) \
|
|
|
|
__glibcxx_check_string_len(_String,_Len)
|
|
|
|
# define __glibcxx_requires_subscript(_N) __glibcxx_check_subscript(_N)
|
2005-05-27 15:01:45 +00:00
|
|
|
|
|
|
|
# include <debug/functions.h>
|
|
|
|
# include <debug/formatter.h>
|
2003-11-11 20:09:16 +00:00
|
|
|
#else
|
|
|
|
# define _GLIBCXX_DEBUG_ASSERT(_Condition)
|
|
|
|
# define _GLIBCXX_DEBUG_PEDASSERT(_Condition)
|
|
|
|
# define __glibcxx_requires_cond(_Cond,_Msg)
|
|
|
|
# define __glibcxx_requires_valid_range(_First,_Last)
|
|
|
|
# define __glibcxx_requires_sorted(_First,_Last)
|
|
|
|
# define __glibcxx_requires_sorted_pred(_First,_Last,_Pred)
|
|
|
|
# define __glibcxx_requires_partitioned(_First,_Last,_Value)
|
|
|
|
# define __glibcxx_requires_partitioned_pred(_First,_Last,_Value,_Pred)
|
|
|
|
# define __glibcxx_requires_heap(_First,_Last)
|
|
|
|
# define __glibcxx_requires_heap_pred(_First,_Last,_Pred)
|
|
|
|
# define __glibcxx_requires_nonempty()
|
|
|
|
# define __glibcxx_requires_string(_String)
|
|
|
|
# define __glibcxx_requires_string_len(_String,_Len)
|
|
|
|
# define __glibcxx_requires_subscript(_N)
|
bitset, [...]: Remove trailing whitespace.
* include/debug/bitset, include/debug/debug.h, include/debug/deque,
include/debug/formatter.h, include/debug/hash_map.h,
include/debug/hash_multimap.h, include/debug/hash_multiset.h,
include/debug/hash_set, include/debug/hash_set.h, include/debug/list,
include/debug/map.h, include/debug/multimap.h,
include/debug/multiset.h, include/debug/safe_base.h,
include/debug/safe_iterator.h, include/debug/safe_iterator.tcc,
include/debug/safe_sequence.h, include/debug/set.h,
include/debug/string, include/debug/vector: Remove trailing whitespace.
From-SVN: r74463
2003-12-09 05:26:28 +01:00
|
|
|
#endif
|
2003-11-11 20:09:16 +00:00
|
|
|
|
bitset, [...]: Remove trailing whitespace.
* include/debug/bitset, include/debug/debug.h, include/debug/deque,
include/debug/formatter.h, include/debug/hash_map.h,
include/debug/hash_multimap.h, include/debug/hash_multiset.h,
include/debug/hash_set, include/debug/hash_set.h, include/debug/list,
include/debug/map.h, include/debug/multimap.h,
include/debug/multiset.h, include/debug/safe_base.h,
include/debug/safe_iterator.h, include/debug/safe_iterator.tcc,
include/debug/safe_sequence.h, include/debug/set.h,
include/debug/string, include/debug/vector: Remove trailing whitespace.
From-SVN: r74463
2003-12-09 05:26:28 +01:00
|
|
|
#endif
|