29 #ifndef _GLIBCXX_DEBUG_FORMATTER_H
30 #define _GLIBCXX_DEBUG_FORMATTER_H 1
32 #include <bits/c++config.h>
40 template<
typename _Iterator>
43 class _Safe_sequence_base;
45 template<
typename _Iterator,
typename _Sequence>
48 template<
typename _Iterator,
typename _Sequence>
51 template<
typename _Sequence>
212 template<
typename _Iterator,
typename _Sequence>
220 _M_variant._M_iterator._M_type = &
typeid(__it);
225 std::__are_same<_Safe_iterator<_Iterator, _Sequence>,
226 typename _Sequence::iterator>::
230 _M_variant._M_iterator._M_seq_type = &
typeid(_Sequence);
250 template<
typename _Iterator,
typename _Sequence>
253 : _M_kind(__iterator), _M_variant()
255 _M_variant._M_iterator._M_name = __name;
256 _M_variant._M_iterator._M_address = &__it;
258 _M_variant._M_iterator._M_type = &
typeid(__it);
260 _M_variant._M_iterator._M_type = 0;
262 _M_variant._M_iterator._M_constness =
263 std::__are_same<_Safe_local_iterator<_Iterator, _Sequence>,
264 typename _Sequence::local_iterator>::
268 _M_variant._M_iterator._M_seq_type = &
typeid(_Sequence);
270 _M_variant._M_iterator._M_seq_type = 0;
278 _M_variant._M_iterator._M_state =
__end;
280 _M_variant._M_iterator._M_state =
__begin;
282 _M_variant._M_iterator._M_state =
__middle;
286 template<
typename _Type>
288 : _M_kind(__iterator), _M_variant()
290 _M_variant._M_iterator._M_name = __name;
291 _M_variant._M_iterator._M_address = &__it;
293 _M_variant._M_iterator._M_type = &
typeid(__it);
295 _M_variant._M_iterator._M_type = 0;
297 _M_variant._M_iterator._M_constness = __mutable_iterator;
298 _M_variant._M_iterator._M_state = __it? __unknown_state : __singular;
299 _M_variant._M_iterator._M_sequence = 0;
300 _M_variant._M_iterator._M_seq_type = 0;
303 template<
typename _Type>
305 : _M_kind(__iterator), _M_variant()
307 _M_variant._M_iterator._M_name = __name;
308 _M_variant._M_iterator._M_address = &__it;
310 _M_variant._M_iterator._M_type = &
typeid(__it);
312 _M_variant._M_iterator._M_type = 0;
314 _M_variant._M_iterator._M_constness = __const_iterator;
315 _M_variant._M_iterator._M_state = __it? __unknown_state : __singular;
316 _M_variant._M_iterator._M_sequence = 0;
317 _M_variant._M_iterator._M_seq_type = 0;
320 template<
typename _Iterator>
322 : _M_kind(__iterator), _M_variant()
324 _M_variant._M_iterator._M_name = __name;
325 _M_variant._M_iterator._M_address = &__it;
327 _M_variant._M_iterator._M_type = &
typeid(__it);
329 _M_variant._M_iterator._M_type = 0;
331 _M_variant._M_iterator._M_constness = __unknown_constness;
332 _M_variant._M_iterator._M_state =
334 _M_variant._M_iterator._M_sequence = 0;
335 _M_variant._M_iterator._M_seq_type = 0;
338 template<
typename _Sequence>
341 : _M_kind(__sequence), _M_variant()
343 _M_variant._M_sequence._M_name = __name;
344 _M_variant._M_sequence._M_address =
345 static_cast<const _Sequence*
>(&__seq);
347 _M_variant._M_sequence._M_type = &
typeid(_Sequence);
349 _M_variant._M_sequence._M_type = 0;
353 template<
typename _Sequence>
355 : _M_kind(__sequence), _M_variant()
357 _M_variant._M_sequence._M_name = __name;
358 _M_variant._M_sequence._M_address = &__seq;
360 _M_variant._M_sequence._M_type = &
typeid(_Sequence);
362 _M_variant._M_sequence._M_type = 0;
368 const char* __name)
const;
377 template<
typename _Iterator>
381 if (_M_num_parameters <
std::size_t(__max_parameters))
382 _M_parameters[_M_num_parameters++] =
_Parameter(__it, __name,
390 if (_M_num_parameters <
std::size_t(__max_parameters))
391 _M_parameters[_M_num_parameters++] =
_Parameter(__value, __name);
396 _M_string(
const char* __value,
const char* __name = 0)
const
398 if (_M_num_parameters <
std::size_t(__max_parameters))
399 _M_parameters[_M_num_parameters++] =
_Parameter(__value, __name);
403 template<
typename _Sequence>
407 if (_M_num_parameters <
std::size_t(__max_parameters))
408 _M_parameters[_M_num_parameters++] =
_Parameter(__seq, __name,
415 { _M_text = __text;
return *
this; }
420 _GLIBCXX_NORETURN
void
425 : _M_file(__file), _M_line(__line), _M_num_parameters(0), _M_text(0),
426 _M_max_length(78), _M_column(1), _M_first_line(
true), _M_wordwrap(
false)
427 { _M_get_max_length(); }
429 template<
typename _Tp>
431 _M_format_word(
char*,
int,
const char*, _Tp)
const throw ();
434 _M_print_word(const
char* __word) const;
437 _M_print_string(const
char* __string) const;
440 _M_get_max_length() const throw ();
442 enum { __max_parameters = 9 };
450 enum { _M_indent = 4 } ;
Definition: formatter.h:86
Definition: formatter.h:90
bool __check_singular(_Iterator &)
Definition: functions.h:51
bool _M_is_before_begin() const
Definition: safe_iterator.h:468
Definition: formatter.h:94
Definition: formatter.h:66
Definition: formatter.h:91
Definition: formatter.h:71
Definition: formatter.h:64
Definition: formatter.h:106
Definition: formatter.h:110
bool _M_is_begin() const
Is this iterator equal to the sequence's begin() iterator?
Definition: safe_local_iterator.h:268
Definition: formatter.h:84
Definition: formatter.h:107
#define false
Definition: stdbool.h:35
Definition: formatter.h:93
Definition: formatter.h:60
Definition: formatter.h:92
Part of RTTI.
Definition: typeinfo:88
Definition: formatter.h:78
Definition: formatter.h:85
#define true
Definition: stdbool.h:34
Definition: formatter.h:76
Definition: formatter.h:96
Definition: formatter.h:67
Definition: formatter.h:104
Definition: formatter.h:115
Definition: formatter.h:63
Definition: formatter.h:101
Definition: formatter.h:59
Definition: formatter.h:95
bool _M_is_begin() const
Is this iterator equal to the sequence's begin() iterator?
Definition: safe_iterator.h:459
Definition: formatter.h:73
Definition: formatter.h:75
Definition: formatter.h:77
Definition: formatter.h:83
Definition: formatter.h:88
const _Sequence * _M_get_sequence() const
Definition: safe_local_iterator.h:264
Definition: formatter.h:68
Definition: formatter.h:58
Definition: formatter.h:87
Definition: formatter.h:81
_GLIBCXX_PURE bool _M_singular() const
Definition: formatter.h:57
Definition: formatter.h:69
Definition: formatter.h:72
Base class for constructing a safe sequence type that tracks iterators that reference it...
Definition: formatter.h:52
__SIZE_TYPE__ size_t
Definition: stddef.h:212
Definition: formatter.h:117
Definition: formatter.h:79
Definition: formatter.h:98
Definition: formatter.h:99
Definition: formatter.h:116
const _Sequence * _M_get_sequence() const
Definition: safe_iterator.h:455
Safe iterator wrapper.
Definition: formatter.h:46
Definition: formatter.h:103
Definition: formatter.h:62
bool _M_is_end() const
Is this iterator equal to the sequence's end() iterator?
Definition: safe_iterator.h:463
_Debug_msg_id
Definition: formatter.h:54
Definition: formatter.h:65
Definition: formatter.h:111
Safe iterator wrapper.
Definition: formatter.h:49
Definition: formatter.h:82
bool _M_is_end() const
Is this iterator equal to the sequence's end() iterator?
Definition: safe_local_iterator.h:272
Definition: formatter.h:61
Definition: formatter.h:89
Definition: formatter.h:113
Definition: formatter.h:108