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:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user