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