2
0
mirror of https://github.com/boostorg/gil.git synced 2026-02-18 14:12:10 +00:00

Fixing potential compilation errors with newer and more standard conformant compilers when using gil and STL. Basically gil's iterators and interator adaptors are now explicit what iterator category they are belonging to, e.g. random access iterator.

[SVN r62551]
This commit is contained in:
Christian Henning
2010-06-08 05:22:50 +00:00
parent 00031862c7
commit af58445a4b
5 changed files with 11 additions and 11 deletions

View File

@@ -44,13 +44,13 @@ namespace boost { namespace gil {
template <typename NonAlignedPixelReference>
struct bit_aligned_pixel_iterator : public iterator_facade<bit_aligned_pixel_iterator<NonAlignedPixelReference>,
typename NonAlignedPixelReference::value_type,
random_access_traversal_tag,
std::random_access_iterator_tag,
const NonAlignedPixelReference,
typename NonAlignedPixelReference::bit_range_t::difference_type> {
private:
typedef iterator_facade<bit_aligned_pixel_iterator<NonAlignedPixelReference>,
typename NonAlignedPixelReference::value_type,
random_access_traversal_tag,
std::random_access_iterator_tag,
const NonAlignedPixelReference,
typename NonAlignedPixelReference::bit_range_t::difference_type> parent_t;
template <typename Ref> friend struct bit_aligned_pixel_iterator;

View File

@@ -51,14 +51,14 @@ namespace boost { namespace gil {
template <typename Loc2> // Models PixelLocatorConcept
class iterator_from_2d : public iterator_facade<iterator_from_2d<Loc2>,
typename Loc2::value_type,
random_access_traversal_tag,
std::random_access_iterator_tag,
typename Loc2::reference,
typename Loc2::coord_t> {
GIL_CLASS_REQUIRE(Loc2, boost::gil, PixelLocatorConcept)
public:
typedef iterator_facade<iterator_from_2d<Loc2>,
typename Loc2::value_type,
random_access_traversal_tag,
std::random_access_iterator_tag,
typename Loc2::reference,
typename Loc2::coord_t> parent_t;
typedef typename parent_t::reference reference;

View File

@@ -44,7 +44,7 @@ template <typename Iterator, // Models Iterator
class dereference_iterator_adaptor : public iterator_adaptor<dereference_iterator_adaptor<Iterator,DFn>,
Iterator,
typename DFn::value_type,
use_default,
typename std::iterator_traits<Iterator>::iterator_category,
typename DFn::reference,
use_default> {
DFn _deref_fn;
@@ -52,7 +52,7 @@ public:
typedef iterator_adaptor<dereference_iterator_adaptor<Iterator,DFn>,
Iterator,
typename DFn::value_type,
use_default,
typename std::iterator_traits<Iterator>::iterator_category,
typename DFn::reference,
use_default> parent_t;
typedef typename DFn::result_type reference;

View File

@@ -54,13 +54,13 @@ struct planar_pixel_reference;
template <typename ChannelPtr, typename ColorSpace>
struct planar_pixel_iterator : public iterator_facade<planar_pixel_iterator<ChannelPtr,ColorSpace>,
pixel<typename std::iterator_traits<ChannelPtr>::value_type,layout<ColorSpace> >,
random_access_traversal_tag,
std::random_access_iterator_tag,
const planar_pixel_reference<typename std::iterator_traits<ChannelPtr>::reference,ColorSpace> >,
public detail::homogeneous_color_base<ChannelPtr,layout<ColorSpace>,mpl::size<ColorSpace>::value > {
private:
typedef iterator_facade<planar_pixel_iterator<ChannelPtr,ColorSpace>,
pixel<typename std::iterator_traits<ChannelPtr>::value_type,layout<ColorSpace> >,
random_access_traversal_tag,
std::random_access_iterator_tag,
const planar_pixel_reference<typename std::iterator_traits<ChannelPtr>::reference,ColorSpace> > parent_t;
typedef detail::homogeneous_color_base<ChannelPtr,layout<ColorSpace>,mpl::size<ColorSpace>::value> color_base_parent_t;
typedef typename std::iterator_traits<ChannelPtr>::value_type channel_t;
@@ -184,7 +184,7 @@ inline std::ptrdiff_t memunit_step(const planar_pixel_iterator<IC,C>&) { return
template <typename IC, typename C>
inline std::ptrdiff_t memunit_distance(const planar_pixel_iterator<IC,C>& p1, const planar_pixel_iterator<IC,C>& p2) {
return memunit_distance(at_c<0>(p1),at_c<0>(p2));
return memunit_distance(gil::at_c<0>(p1),gil::at_c<0>(p2));
}
template <typename IC>

View File

@@ -39,12 +39,12 @@ template <typename Deref, // A function object that given a point returns a pixe
int Dim> // the dimension to advance along
struct position_iterator : public iterator_facade<position_iterator<Deref,Dim>,
typename Deref::value_type,
random_access_traversal_tag,
std::random_access_iterator_tag,
typename Deref::reference,
typename Deref::argument_type::template axis<Dim>::coord_t> {
typedef iterator_facade<position_iterator<Deref,Dim>,
typename Deref::value_type,
random_access_traversal_tag,
std::random_access_iterator_tag,
typename Deref::reference,
typename Deref::argument_type::template axis<Dim>::coord_t> parent_t;
typedef typename parent_t::difference_type difference_type;