[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