@@ -309,7 +309,7 @@ namespace detail {
309
309
struct __nth_channel_view_basic <View,false > {
310
310
using type = typename view_type<typename channel_type<View>::type, gray_layout_t , false , true , view_is_mutable<View>::value>::type;
311
311
312
- static type make (const View& src, int n) {
312
+ static type make (const View& src, std:: size_t n) {
313
313
using locator_t = typename type::xy_locator;
314
314
using x_iterator_t = typename type::x_iterator;
315
315
using x_iterator_base_t = typename iterator_adaptor_get_base<x_iterator_t >::type;
@@ -322,7 +322,7 @@ namespace detail {
322
322
template <typename View>
323
323
struct __nth_channel_view_basic <View,true > {
324
324
using type = typename view_type<typename channel_type<View>::type, gray_layout_t , false , false , view_is_mutable<View>::value>::type;
325
- static type make (const View& src, int n) {
325
+ static type make (const View& src, std:: size_t n) {
326
326
using x_iterator_t = typename type::x_iterator;
327
327
return interleaved_view (src.width (),src.height (),(x_iterator_t )&(src (0 ,0 )[n]), src.pixels ().row_size ());
328
328
}
@@ -346,7 +346,7 @@ namespace detail {
346
346
public:
347
347
using type = typename __nth_channel_view_basic<View,adjacent>::type;
348
348
349
- static type make (const View& src, int n) {
349
+ static type make (const View& src, std:: size_t n) {
350
350
return __nth_channel_view_basic<View,adjacent>::make (src,n);
351
351
}
352
352
};
@@ -374,10 +374,10 @@ namespace detail {
374
374
using reference = mp11::mp_if_c<is_mutable, ref_t , value_type>;
375
375
using result_type = reference;
376
376
377
- nth_channel_deref_fn (int n=0 ) : _n(n) {}
377
+ nth_channel_deref_fn (std:: size_t n=0 ) : _n(n) {}
378
378
template <typename P> nth_channel_deref_fn (const nth_channel_deref_fn<P>& d) : _n(d._n) {}
379
379
380
- int _n; // the channel to use
380
+ std:: size_t _n; // the channel to use
381
381
382
382
result_type operator ()(argument_type srcP) const {
383
383
return result_type (srcP[_n]);
@@ -390,7 +390,7 @@ namespace detail {
390
390
using AD = typename View::template add_deref<deref_t >;
391
391
public:
392
392
using type = typename AD::type;
393
- static type make (const View& src, int n) {
393
+ static type make (const View& src, std:: size_t n) {
394
394
return AD::make (src, deref_t (n));
395
395
}
396
396
};
@@ -409,13 +409,13 @@ struct nth_channel_view_type {
409
409
using VB = detail::__nth_channel_view<View,view_is_basic<View>::value>;
410
410
public:
411
411
using type = typename VB::type;
412
- static type make (const View& src, int n) { return VB::make (src,n); }
412
+ static type make (const View& src, std:: size_t n) { return VB::make (src,n); }
413
413
};
414
414
415
415
416
416
// / \ingroup ImageViewTransformationsNthChannel
417
417
template <typename View>
418
- typename nth_channel_view_type<View>::type nth_channel_view (const View& src, int n) {
418
+ typename nth_channel_view_type<View>::type nth_channel_view (const View& src, std:: size_t n) {
419
419
return nth_channel_view_type<View>::make (src,n);
420
420
}
421
421
@@ -430,11 +430,11 @@ typename nth_channel_view_type<View>::type nth_channel_view(const View& src, int
430
430
// / \brief single-channel (grayscale) view of the K-th channel of a given image_view. The channel index is a template parameter
431
431
432
432
namespace detail {
433
- template <int K, typename View, bool AreChannelsTogether> struct __kth_channel_view_basic ;
433
+ template <std:: size_t K, typename View, bool AreChannelsTogether> struct __kth_channel_view_basic ;
434
434
435
435
// kth_channel_view when the channels are not adjacent in memory. This can happen for multi-channel interleaved images
436
436
// or images with a step
437
- template <int K, typename View>
437
+ template <std:: size_t K, typename View>
438
438
struct __kth_channel_view_basic <K,View,false > {
439
439
private:
440
440
using channel_t = typename kth_element_type<typename View::value_type,K>::type;
@@ -451,7 +451,7 @@ namespace detail {
451
451
};
452
452
453
453
// kth_channel_view when the channels are together in memory (true for simple grayscale or planar images)
454
- template <int K, typename View>
454
+ template <std:: size_t K, typename View>
455
455
struct __kth_channel_view_basic <K,View,true > {
456
456
private:
457
457
using channel_t = typename kth_element_type<typename View::value_type, K>::type;
@@ -463,10 +463,10 @@ namespace detail {
463
463
}
464
464
};
465
465
466
- template <int K, typename View, bool IsBasic> struct __kth_channel_view ;
466
+ template <std:: size_t K, typename View, bool IsBasic> struct __kth_channel_view ;
467
467
468
468
// For basic (memory-based) views dispatch to __kth_channel_view_basic
469
- template <int K, typename View> struct __kth_channel_view <K,View,true >
469
+ template <std:: size_t K, typename View> struct __kth_channel_view <K,View,true >
470
470
{
471
471
private:
472
472
using src_x_iterator = typename View::x_iterator;
@@ -491,7 +491,7 @@ namespace detail {
491
491
// / 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)
492
492
// / \tparam SrcP reference to PixelConcept (could be pixel value or const/non-const reference)
493
493
// / Examples: pixel<T,L>, pixel<T,L>&, const pixel<T,L>&, planar_pixel_reference<T&,L>, planar_pixel_reference<const T&,L>
494
- template <int K, typename SrcP>
494
+ template <std:: size_t K, typename SrcP>
495
495
struct kth_channel_deref_fn
496
496
{
497
497
static constexpr bool is_mutable =
@@ -519,7 +519,7 @@ namespace detail {
519
519
}
520
520
};
521
521
522
- template <int K, typename View> struct __kth_channel_view <K,View,false > {
522
+ template <std:: size_t K, typename View> struct __kth_channel_view <K,View,false > {
523
523
private:
524
524
using deref_t = kth_channel_deref_fn<K,typename View::reference>;
525
525
using AD = typename View::template add_deref<deref_t >;
@@ -537,7 +537,7 @@ namespace detail {
537
537
// / If the channels in the source view are adjacent in memory (such as planar non-step view or single-channel view) then the
538
538
// / return view is a single-channel non-step view.
539
539
// / If the channels are non-adjacent (interleaved and/or step view) then the return view is a single-channel step view.
540
- template <int K, typename View>
540
+ template <std:: size_t K, typename View>
541
541
struct kth_channel_view_type {
542
542
private:
543
543
BOOST_GIL_CLASS_REQUIRE (View, boost::gil, ImageViewConcept)
@@ -548,7 +548,7 @@ struct kth_channel_view_type {
548
548
};
549
549
550
550
// / \ingroup ImageViewTransformationsKthChannel
551
- template <int K, typename View>
551
+ template <std:: size_t K, typename View>
552
552
typename kth_channel_view_type<K,View>::type kth_channel_view (const View& src) {
553
553
return kth_channel_view_type<K,View>::make (src);
554
554
}
0 commit comments