[PATCH 01/11] libcamera: yaml_parser: Drop std::enable_if_t guards for get() function

Kieran Bingham kieran.bingham at ideasonboard.com
Thu Jun 13 13:07:17 CEST 2024


Quoting Laurent Pinchart (2024-06-13 02:39:34)
> The YamlObject::get() function template is implemented for a set of
> basic types through template specializations. The function declaration
> uses std::enable_if_t<> guards to signal incorrect usage at compilation
> time. This however prevents the API to be extended with additional
> specializations in other compilation units.
> 
> To prepare for new specializations of the function for the ipa::Vector
> and ipa::Pwl classes types, implemented in their respective compilation
> units, drop the std::enable_it_t<> guards. Incorrect usage will still be
> reported as link errors.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>


Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>

> ---
>  include/libcamera/internal/yaml_parser.h | 15 ---------------
>  1 file changed, 15 deletions(-)
> 
> diff --git a/include/libcamera/internal/yaml_parser.h b/include/libcamera/internal/yaml_parser.h
> index 3ac27e06f69d..81cc0e25ae0f 100644
> --- a/include/libcamera/internal/yaml_parser.h
> +++ b/include/libcamera/internal/yaml_parser.h
> @@ -161,22 +161,7 @@ public:
>  
>         std::size_t size() const;
>  
> -#ifndef __DOXYGEN__
> -       template<typename T,
> -                std::enable_if_t<
> -                        std::is_same_v<bool, T> ||
> -                        std::is_same_v<double, T> ||
> -                        std::is_same_v<int8_t, T> ||
> -                        std::is_same_v<uint8_t, T> ||
> -                        std::is_same_v<int16_t, T> ||
> -                        std::is_same_v<uint16_t, T> ||
> -                        std::is_same_v<int32_t, T> ||
> -                        std::is_same_v<uint32_t, T> ||
> -                        std::is_same_v<std::string, T> ||
> -                        std::is_same_v<Size, T>> * = nullptr>
> -#else
>         template<typename T>
> -#endif
>         std::optional<T> get() const;
>  
>         template<typename T, typename U>
> -- 
> Regards,
> 
> Laurent Pinchart
>


More information about the libcamera-devel mailing list