[libcamera-devel] [PATCH v2 01/27] libcamera: base: utils: Use size_t for index in utils::enumerate()

paul.elder at ideasonboard.com paul.elder at ideasonboard.com
Mon Sep 6 11:03:43 CEST 2021


Hi Laurent,

On Mon, Sep 06, 2021 at 05:00:34AM +0300, Laurent Pinchart wrote:
> The index generated by utils::enumerate() is an iteration counter, which
> should thus be positive. Use std::size_t instead of the different_type

s/different/difference/ ?

> of the container.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>

Reviewed-by: Paul Elder <paul.elder at ideasonboard.com>

> ---
>  include/libcamera/base/utils.h |  4 ++--
>  test/utils.cpp                 | 10 +++++-----
>  2 files changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/include/libcamera/base/utils.h b/include/libcamera/base/utils.h
> index 52301254c2eb..2b761436a99f 100644
> --- a/include/libcamera/base/utils.h
> +++ b/include/libcamera/base/utils.h
> @@ -246,7 +246,7 @@ private:
>  
>  public:
>  	using difference_type = typename std::iterator_traits<Base>::difference_type;
> -	using value_type = std::pair<const difference_type, base_reference>;
> +	using value_type = std::pair<const std::size_t, base_reference>;
>  	using pointer = value_type *;
>  	using reference = value_type &;
>  	using iterator_category = std::input_iterator_tag;
> @@ -275,7 +275,7 @@ public:
>  
>  private:
>  	Base current_;
> -	difference_type pos_;
> +	std::size_t pos_;
>  };
>  
>  template<typename Base>
> diff --git a/test/utils.cpp b/test/utils.cpp
> index d7f810e95e7a..d65467b5102c 100644
> --- a/test/utils.cpp
> +++ b/test/utils.cpp
> @@ -77,8 +77,8 @@ protected:
>  
>  	int testEnumerate()
>  	{
> -		std::vector<int> integers{ 1, 2, 3, 4, 5 };
> -		int i = 0;
> +		std::vector<unsigned int> integers{ 1, 2, 3, 4, 5 };
> +		unsigned int i = 0;
>  
>  		for (auto [index, value] : utils::enumerate(integers)) {
>  			if (index != i || value != i + 1) {
> @@ -93,12 +93,12 @@ protected:
>  			++i;
>  		}
>  
> -		if (integers != std::vector<int>{ 0, 1, 2, 3, 4 }) {
> +		if (integers != std::vector<unsigned int>{ 0, 1, 2, 3, 4 }) {
>  			cerr << "Failed to modify container in enumerated range loop" << endl;
>  			return TestFail;
>  		}
>  
> -		Span<const int> span{ integers };
> +		Span<const unsigned int> span{ integers };
>  		i = 0;
>  
>  		for (auto [index, value] : utils::enumerate(span)) {
> @@ -112,7 +112,7 @@ protected:
>  			++i;
>  		}
>  
> -		const int array[] = { 0, 2, 4, 6, 8 };
> +		const unsigned int array[] = { 0, 2, 4, 6, 8 };
>  		i = 0;
>  
>  		for (auto [index, value] : utils::enumerate(array)) {
> -- 
> Regards,
> 
> Laurent Pinchart
> 


More information about the libcamera-devel mailing list