forked from boostorg/utility
*** empty log message ***
[SVN r11537]
This commit is contained in:
@@ -98,6 +98,8 @@ typedef std::deque<int> storage;
|
|||||||
typedef std::deque<int*> pointer_deque;
|
typedef std::deque<int*> pointer_deque;
|
||||||
typedef std::set<storage::iterator> iterator_set;
|
typedef std::set<storage::iterator> iterator_set;
|
||||||
|
|
||||||
|
template <class T> struct foo;
|
||||||
|
|
||||||
int
|
int
|
||||||
main()
|
main()
|
||||||
{
|
{
|
||||||
@@ -108,6 +110,7 @@ main()
|
|||||||
// sanity check, if this doesn't pass the test is buggy
|
// sanity check, if this doesn't pass the test is buggy
|
||||||
boost::random_access_iterator_test(array, N, array);
|
boost::random_access_iterator_test(array, N, array);
|
||||||
|
|
||||||
|
#if 0
|
||||||
// Check that the policy concept checks and the default policy
|
// Check that the policy concept checks and the default policy
|
||||||
// implementation match up.
|
// implementation match up.
|
||||||
boost::function_requires<
|
boost::function_requires<
|
||||||
@@ -210,7 +213,7 @@ main()
|
|||||||
|
|
||||||
typedef boost::reverse_iterator_generator<const dummyT*
|
typedef boost::reverse_iterator_generator<const dummyT*
|
||||||
#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||||
, const dummyT
|
, dummyT, const dummyT&, const dummyT
|
||||||
#endif
|
#endif
|
||||||
>::type const_reverse_iterator;
|
>::type const_reverse_iterator;
|
||||||
|
|
||||||
@@ -367,6 +370,7 @@ main()
|
|||||||
if (zero) // don't do this, just make sure it compiles
|
if (zero) // don't do this, just make sure it compiles
|
||||||
assert((*i).m_x == i->foo());
|
assert((*i).m_x == i->foo());
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
std::cout << "test successful " << std::endl;
|
std::cout << "test successful " << std::endl;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@@ -214,7 +214,7 @@ struct iterator_adaptor;
|
|||||||
particular, the result type of <tt>operator*()</tt>.<br>
|
particular, the result type of <tt>operator*()</tt>.<br>
|
||||||
<b>Default:</b> If <tt>Value</tt> is supplied, <tt>Value&</tt> is
|
<b>Default:</b> If <tt>Value</tt> is supplied, <tt>Value&</tt> is
|
||||||
used. Otherwise
|
used. Otherwise
|
||||||
<tt>std::iterator_traits<BaseType>::reference</tt> is used.
|
<tt>std::iterator_traits<BaseType>::reference</tt> is used. <a href="#7">[7]</a>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td><tt>Pointer</tt>
|
<td><tt>Pointer</tt>
|
||||||
@@ -222,7 +222,7 @@ struct iterator_adaptor;
|
|||||||
<td>The <tt>pointer</tt> type of the resulting iterator, and in
|
<td>The <tt>pointer</tt> type of the resulting iterator, and in
|
||||||
particular, the result type of <tt>operator->()</tt>.<br>
|
particular, the result type of <tt>operator->()</tt>.<br>
|
||||||
<b>Default:</b> If <tt>Value</tt> was supplied, then <tt>Value*</tt>,
|
<b>Default:</b> If <tt>Value</tt> was supplied, then <tt>Value*</tt>,
|
||||||
otherwise <tt>std::iterator_traits<BaseType>::pointer</tt>.
|
otherwise <tt>std::iterator_traits<BaseType>::pointer</tt>. <a href="#7">[7]</a>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td><tt>Category</tt>
|
<td><tt>Category</tt>
|
||||||
@@ -884,6 +884,14 @@ bool operator==(const iterator_adaptor<B1,P,V1,R1,P1,C,D>&,
|
|||||||
*x = i;
|
*x = i;
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
<p><a name="7">[7]</a>
|
||||||
|
If you are using a compiler that does not have a version of
|
||||||
|
<tt>std::iterator_traits</tt> that works for pointers (i.e., if your
|
||||||
|
compiler does not support partial specialization) then if the
|
||||||
|
<tt>Base</tt> type is a const pointer, then the correct defaults
|
||||||
|
for the <tt>reference</tt> and <tt>pointer</tt> types can not be
|
||||||
|
deduced. You must specify these types explicitly.
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<p>Revised
|
<p>Revised
|
||||||
|
Reference in New Issue
Block a user