1
/*
2
 * Copyright (c) 1998
3
 * Silicon Graphics Computer Systems, Inc.
4
 *
5
 * Copyright (c) 1999
6
 * Boris Fomitchev
7
 *
8
 * This material is provided "as is", with absolutely no warranty expressed
9
 * or implied. Any use is at your own risk.
10
 *
11
 * Permission to use or copy this software for any purpose is hereby granted
12
 * without fee, provided the above notices are retained on all copies.
13
 * Permission to modify the code and to distribute modified code is granted,
14
 * provided the above notices are retained, and a notice that the code was
15
 * modified is included with the above copyright notice.
16
 *
17
 */
18
19
#ifndef _STLP_BITSET
20
#define _STLP_BITSET
21
22
// This implementation of bitset<> has a second template parameter,
23
// _WordT, which defaults to unsigned long.  *YOU SHOULD NOT USE
24
// THIS FEATURE*.  It is experimental, and it may be removed in
25
// future releases.
26
27
// A bitset of size N, using words of type _WordT, will have
28
// N % (sizeof(_WordT) * CHAR_BIT) unused bits.  (They are the high-
29
// order bits in the highest word.)  It is a class invariant
30
// of class bitset<> that those unused bits are always zero.
31
32
// Most of the actual code isn't contained in bitset<> itself, but in the
33
// base class _Base_bitset.  The base class works with whole words, not with
34
// individual bits.  This allows us to specialize _Base_bitset for the
35
// important special case where the bitset is only a single word.
36
37
// The C++ standard does not define the precise semantics of operator[].
38
// In this implementation the const version of operator[] is equivalent
39
// to test(), except that it does no range checking.  The non-const version
40
// returns a reference to a bit, again without doing any range checking.
41
42
#ifndef _STLP_OUTERMOST_HEADER_ID
43
#  define _STLP_OUTERMOST_HEADER_ID 0x2
44
#  include <stl/_prolog.h>
45
#endif
46
47
#if (_STLP_OUTERMOST_HEADER_ID == 0x2)
48
#  ifndef _STLP_INTERNAL_BITSET
49
#    include <stl/_bitset.h>
50
#  endif
51
#endif
52
53
#if (_STLP_OUTERMOST_HEADER_ID == 0x2 )
54
#  include <stl/_epilog.h>
55
#  undef _STLP_OUTERMOST_HEADER_ID
56
#endif
57
58
#endif /* _STLP_BITSET */
59
60
// Local Variables:
61
// mode:C++
62
// End: