mirror of
https://github.com/boostorg/utility.git
synced 2025-10-05 21:40:59 +02:00
Compare commits
8 Commits
svn-branch
...
boost-1.33
Author | SHA1 | Date | |
---|---|---|---|
|
efce512ea4 | ||
|
59f15390a9 | ||
|
dd80a4f8ec | ||
|
2a50eba072 | ||
|
1770e47f97 | ||
|
d4f4893ee1 | ||
|
23ec8fc788 | ||
|
3ab8d14a59 |
@@ -30,9 +30,9 @@ adding the requirements that the iterator can be used to make multiple
|
|||||||
passes through a range, and that if <TT>it1 == it2</TT> and
|
passes through a range, and that if <TT>it1 == it2</TT> and
|
||||||
<TT>it1</TT> is dereferenceable then <TT>++it1 == ++it2</TT>. The
|
<TT>it1</TT> is dereferenceable then <TT>++it1 == ++it2</TT>. The
|
||||||
Multi-Pass Input Iterator is very similar to the <a
|
Multi-Pass Input Iterator is very similar to the <a
|
||||||
href="http://www.sgi.com/tech/stl/ForwardIterator.hmtl">Forward Iterator</a>. The
|
href="http://www.sgi.com/tech/stl/ForwardIterator.html">Forward Iterator</a>. The
|
||||||
only difference is that a <a
|
only difference is that a <a
|
||||||
href="http://www.sgi.com/tech/stl/ForwardIterator.hmtl">Forward Iterator</a>
|
href="http://www.sgi.com/tech/stl/ForwardIterator.html">Forward Iterator</a>
|
||||||
requires the <TT>reference</TT> type to be <TT>value_type&</TT>, whereas
|
requires the <TT>reference</TT> type to be <TT>value_type&</TT>, whereas
|
||||||
MultiPassInputIterator is like <a
|
MultiPassInputIterator is like <a
|
||||||
href="http://www.sgi.com/tech/stl/InputIterator.html">Input Iterator</a>
|
href="http://www.sgi.com/tech/stl/InputIterator.html">Input Iterator</a>
|
||||||
|
@@ -351,7 +351,7 @@ with the exact pointer type used in <code>switcher</code>'s constructor.</p>
|
|||||||
<dt>Jonathan Turkanis
|
<dt>Jonathan Turkanis
|
||||||
<dd>Supplied an implementation of generating the constructor templates that
|
<dd>Supplied an implementation of generating the constructor templates that
|
||||||
can be controlled and automated with macros. The implementation uses
|
can be controlled and automated with macros. The implementation uses
|
||||||
the <a href="../preprocessor/">Preprocessor library</a>.
|
the <a href="../preprocessor/index.html">Preprocessor library</a>.
|
||||||
|
|
||||||
<dt><a href="../../people/daryle_walker.html">Daryle Walker</a>
|
<dt><a href="../../people/daryle_walker.html">Daryle Walker</a>
|
||||||
<dd>Started the library. Contributed the test file <cite><a
|
<dd>Started the library. Contributed the test file <cite><a
|
||||||
|
@@ -58,7 +58,7 @@ template <class Generator>
|
|||||||
class generator_iterator_generator
|
class generator_iterator_generator
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef <a href="iterator_adaptors.htm#iterator_adaptor">iterator_adaptor</a><...> type; // the resulting generator iterator type
|
typedef <i>unspecified</i> type; // the resulting generator iterator type
|
||||||
}
|
}
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
@@ -60,11 +60,19 @@ struct complement
|
|||||||
// indirection through complement_traits_aux necessary to keep MSVC happy
|
// indirection through complement_traits_aux necessary to keep MSVC happy
|
||||||
typedef complement_traits_aux<Number, size - 1> prev;
|
typedef complement_traits_aux<Number, size - 1> prev;
|
||||||
public:
|
public:
|
||||||
|
#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 2
|
||||||
|
// GCC 4.0.2 ICEs on these C-style casts
|
||||||
|
BOOST_STATIC_CONSTANT(Number, max =
|
||||||
|
Number((prev::max) << CHAR_BIT)
|
||||||
|
+ Number(UCHAR_MAX));
|
||||||
|
BOOST_STATIC_CONSTANT(Number, min = Number((prev::min) << CHAR_BIT));
|
||||||
|
#else
|
||||||
BOOST_STATIC_CONSTANT(Number, max =
|
BOOST_STATIC_CONSTANT(Number, max =
|
||||||
Number(Number(prev::max) << CHAR_BIT)
|
Number(Number(prev::max) << CHAR_BIT)
|
||||||
+ Number(UCHAR_MAX));
|
+ Number(UCHAR_MAX));
|
||||||
|
|
||||||
BOOST_STATIC_CONSTANT(Number, min = Number(Number(prev::min) << CHAR_BIT));
|
BOOST_STATIC_CONSTANT(Number, min = Number(Number(prev::min) << CHAR_BIT));
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -221,10 +229,16 @@ void test_aux(unsigned_tag, Number*)
|
|||||||
(sizeof(Number) < sizeof(boost::intmax_t))
|
(sizeof(Number) < sizeof(boost::intmax_t))
|
||||||
| (boost::is_same<difference_type, boost::intmax_t>::value));
|
| (boost::is_same<difference_type, boost::intmax_t>::value));
|
||||||
|
|
||||||
|
#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 2
|
||||||
|
// GCC 4.0.2 ICEs on this C-style cases
|
||||||
|
BOOST_STATIC_ASSERT((complement_traits<Number>::max) > Number(0));
|
||||||
|
BOOST_STATIC_ASSERT((complement_traits<Number>::min) == Number(0));
|
||||||
|
#else
|
||||||
// Force casting to Number here to work around the fact that it's an enum on MSVC
|
// Force casting to Number here to work around the fact that it's an enum on MSVC
|
||||||
BOOST_STATIC_ASSERT(Number(complement_traits<Number>::max) > Number(0));
|
BOOST_STATIC_ASSERT(Number(complement_traits<Number>::max) > Number(0));
|
||||||
BOOST_STATIC_ASSERT(Number(complement_traits<Number>::min) == Number(0));
|
BOOST_STATIC_ASSERT(Number(complement_traits<Number>::min) == Number(0));
|
||||||
|
#endif
|
||||||
|
|
||||||
const Number max = complement_traits<Number>::max;
|
const Number max = complement_traits<Number>::max;
|
||||||
const Number min = complement_traits<Number>::min;
|
const Number min = complement_traits<Number>::min;
|
||||||
|
|
||||||
@@ -308,10 +322,15 @@ void test_aux(signed_tag, Number*)
|
|||||||
(sizeof(Number) < sizeof(boost::intmax_t))
|
(sizeof(Number) < sizeof(boost::intmax_t))
|
||||||
| (boost::is_same<difference_type, Number>::value));
|
| (boost::is_same<difference_type, Number>::value));
|
||||||
|
|
||||||
|
#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 2
|
||||||
|
// GCC 4.0.2 ICEs on this cast
|
||||||
|
BOOST_STATIC_ASSERT((complement_traits<Number>::max) > Number(0));
|
||||||
|
BOOST_STATIC_ASSERT((complement_traits<Number>::min) < Number(0));
|
||||||
|
#else
|
||||||
// Force casting to Number here to work around the fact that it's an enum on MSVC
|
// Force casting to Number here to work around the fact that it's an enum on MSVC
|
||||||
BOOST_STATIC_ASSERT(Number(complement_traits<Number>::max) > Number(0));
|
BOOST_STATIC_ASSERT(Number(complement_traits<Number>::max) > Number(0));
|
||||||
BOOST_STATIC_ASSERT(Number(complement_traits<Number>::min) < Number(0));
|
BOOST_STATIC_ASSERT(Number(complement_traits<Number>::min) < Number(0));
|
||||||
|
#endif
|
||||||
const Number max = complement_traits<Number>::max;
|
const Number max = complement_traits<Number>::max;
|
||||||
const Number min = complement_traits<Number>::min;
|
const Number min = complement_traits<Number>::min;
|
||||||
|
|
||||||
|
1
sublibs
Normal file
1
sublibs
Normal file
@@ -0,0 +1 @@
|
|||||||
|
The existance of this file tells the regression reporting programs that the directory contains sub-directories which are libraries.
|
@@ -15,8 +15,8 @@
|
|||||||
<h2>Contents</h2>
|
<h2>Contents</h2>
|
||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
<dt><a href="#intro">Rationale</a></dt>
|
<dt><a href="#rationale">Rationale</a></dt>
|
||||||
<dt><a href="#rationale">Introduction</a></dt>
|
<dt><a href="#intro">Introduction</a></dt>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
@@ -49,7 +49,7 @@ a solution with consistent syntax for value initialization of scalar,
|
|||||||
union and class types. <br>
|
union and class types. <br>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2><a name="into"></a>Introduction</h2>
|
<h2><a name="intro"></a>Introduction</h2>
|
||||||
|
|
||||||
<p>The C++ standard [<a href="#references">1</a>] contains the definitions
|
<p>The C++ standard [<a href="#references">1</a>] contains the definitions
|
||||||
of <code>zero-initialization</code> and <code>default-initialization</code>.
|
of <code>zero-initialization</code> and <code>default-initialization</code>.
|
||||||
@@ -216,4 +216,4 @@ at <a href="http://www.yahoogroups.com/list/boost">www.yahoogroups.com/list/boos
|
|||||||
<br>
|
<br>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
Reference in New Issue
Block a user