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

Paul Elder paul.elder at ideasonboard.com
Thu Jun 13 09:23:27 CEST 2024


On Thu, Jun 13, 2024 at 04:39:34AM +0300, Laurent Pinchart wrote:
> 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: Paul Elder <paul.elder 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>


More information about the libcamera-devel mailing list