14
14
#include < boost/gil/image_view.hpp>
15
15
#include < boost/gil/metafunctions.hpp>
16
16
#include < boost/gil/point.hpp>
17
+ #include < boost/gil/typedefs.hpp>
17
18
#include < boost/gil/detail/mp11.hpp>
18
19
19
20
#include < boost/assert.hpp>
@@ -338,7 +339,7 @@ namespace detail {
338
339
struct __nth_channel_view_basic <View,false > {
339
340
using type = typename view_type<typename channel_type<View>::type, gray_layout_t , false , true , view_is_mutable<View>::value>::type;
340
341
341
- static type make (View const & src, std:: size_t n) {
342
+ static type make (View const & src, index_t n) {
342
343
using locator_t = typename type::xy_locator;
343
344
using x_iterator_t = typename type::x_iterator;
344
345
using x_iterator_base_t = typename iterator_adaptor_get_base<x_iterator_t >::type;
@@ -351,7 +352,7 @@ namespace detail {
351
352
template <typename View>
352
353
struct __nth_channel_view_basic <View,true > {
353
354
using type = typename view_type<typename channel_type<View>::type, gray_layout_t , false , false , view_is_mutable<View>::value>::type;
354
- static type make (View const & src, std:: size_t n) {
355
+ static type make (View const & src, index_t n) {
355
356
using x_iterator_t = typename type::x_iterator;
356
357
return interleaved_view (src.width (),src.height (),(x_iterator_t )&(src (0 ,0 )[n]), src.pixels ().row_size ());
357
358
}
@@ -375,7 +376,7 @@ namespace detail {
375
376
public:
376
377
using type = typename __nth_channel_view_basic<View,adjacent>::type;
377
378
378
- static type make (View const & src, std:: size_t n) {
379
+ static type make (View const & src, index_t n) {
379
380
return __nth_channel_view_basic<View,adjacent>::make (src,n);
380
381
}
381
382
};
@@ -403,11 +404,11 @@ namespace detail {
403
404
using reference = mp11::mp_if_c<is_mutable, ref_t , value_type>;
404
405
using result_type = reference;
405
406
406
- nth_channel_deref_fn (std:: size_t n=0 ) : _n(n) {}
407
+ nth_channel_deref_fn (index_t n=0 ) : _n(n) {}
407
408
template <typename P>
408
409
nth_channel_deref_fn (const nth_channel_deref_fn<P>& d) : _n(d._n) {}
409
410
410
- std:: size_t _n; // the channel to use
411
+ index_t _n; // the channel to use
411
412
412
413
auto operator ()(argument_type srcP) const -> result_type
413
414
{
@@ -421,7 +422,7 @@ namespace detail {
421
422
using AD = typename View::template add_deref<deref_t >;
422
423
public:
423
424
using type = typename AD::type;
424
- static type make (View const & src, std:: size_t n) {
425
+ static type make (View const & src, index_t n) {
425
426
return AD::make (src, deref_t (n));
426
427
}
427
428
};
@@ -440,12 +441,12 @@ struct nth_channel_view_type {
440
441
using VB = detail::__nth_channel_view<View,view_is_basic<View>::value>;
441
442
public:
442
443
using type = typename VB::type;
443
- static type make (View const & src, std:: size_t n) { return VB::make (src,n); }
444
+ static type make (View const & src, index_t n) { return VB::make (src,n); }
444
445
};
445
446
446
447
// / \ingroup ImageViewTransformationsNthChannel
447
448
template <typename View>
448
- typename nth_channel_view_type<View>::type nth_channel_view (View const & src, std:: size_t n) {
449
+ typename nth_channel_view_type<View>::type nth_channel_view (View const & src, index_t n) {
449
450
return nth_channel_view_type<View>::make (src,n);
450
451
}
451
452
@@ -454,11 +455,11 @@ typename nth_channel_view_type<View>::type nth_channel_view(View const& src, std
454
455
// / \brief single-channel (grayscale) view of the K-th channel of a given image_view. The channel index is a template parameter
455
456
456
457
namespace detail {
457
- template <std:: size_t K, typename View, bool AreChannelsTogether> struct __kth_channel_view_basic ;
458
+ template <index_t K, typename View, bool AreChannelsTogether> struct __kth_channel_view_basic ;
458
459
459
460
// kth_channel_view when the channels are not adjacent in memory. This can happen for multi-channel interleaved images
460
461
// or images with a step
461
- template <std:: size_t K, typename View>
462
+ template <index_t K, typename View>
462
463
struct __kth_channel_view_basic <K,View,false > {
463
464
private:
464
465
using channel_t = typename kth_element_type<typename View::value_type,K>::type;
@@ -475,7 +476,7 @@ namespace detail {
475
476
};
476
477
477
478
// kth_channel_view when the channels are together in memory (true for simple grayscale or planar images)
478
- template <std:: size_t K, typename View>
479
+ template <index_t K, typename View>
479
480
struct __kth_channel_view_basic <K,View,true > {
480
481
private:
481
482
using channel_t = typename kth_element_type<typename View::value_type, K>::type;
@@ -487,10 +488,10 @@ namespace detail {
487
488
}
488
489
};
489
490
490
- template <std:: size_t K, typename View, bool IsBasic> struct __kth_channel_view ;
491
+ template <index_t K, typename View, bool IsBasic> struct __kth_channel_view ;
491
492
492
493
// For basic (memory-based) views dispatch to __kth_channel_view_basic
493
- template <std:: size_t K, typename View> struct __kth_channel_view <K,View,true >
494
+ template <index_t K, typename View> struct __kth_channel_view <K,View,true >
494
495
{
495
496
private:
496
497
using src_x_iterator = typename View::x_iterator;
@@ -515,7 +516,7 @@ namespace detail {
515
516
// / If the input is a pixel value or constant reference, the function object is immutable. Otherwise it is mutable (and returns non-const reference to the k-th channel)
516
517
// / \tparam SrcP reference to PixelConcept (could be pixel value or const/non-const reference)
517
518
// / Examples: pixel<T,L>, pixel<T,L>&, const pixel<T,L>&, planar_pixel_reference<T&,L>, planar_pixel_reference<const T&,L>
518
- template <std:: size_t K, typename SrcP>
519
+ template <index_t K, typename SrcP>
519
520
struct kth_channel_deref_fn
520
521
{
521
522
static constexpr bool is_mutable =
@@ -544,7 +545,7 @@ namespace detail {
544
545
}
545
546
};
546
547
547
- template <std:: size_t K, typename View> struct __kth_channel_view <K,View,false > {
548
+ template <index_t K, typename View> struct __kth_channel_view <K,View,false > {
548
549
private:
549
550
using deref_t = kth_channel_deref_fn<K,typename View::reference>;
550
551
using AD = typename View::template add_deref<deref_t >;
@@ -562,7 +563,7 @@ namespace detail {
562
563
// / If the channels in the source view are adjacent in memory (such as planar non-step view or single-channel view) then the
563
564
// / return view is a single-channel non-step view.
564
565
// / If the channels are non-adjacent (interleaved and/or step view) then the return view is a single-channel step view.
565
- template <std:: size_t K, typename View>
566
+ template <index_t K, typename View>
566
567
struct kth_channel_view_type {
567
568
private:
568
569
BOOST_GIL_CLASS_REQUIRE (View, boost::gil, ImageViewConcept)
@@ -573,7 +574,7 @@ struct kth_channel_view_type {
573
574
};
574
575
575
576
// / \ingroup ImageViewTransformationsKthChannel
576
- template <std:: size_t K, typename View>
577
+ template <index_t K, typename View>
577
578
auto kth_channel_view (View const & src)
578
579
-> typename kth_channel_view_type<K,View>::type
579
580
{
0 commit comments