8 #ifndef BOOST_GIL_IO_GET_READER_HPP
9 #define BOOST_GIL_IO_GET_READER_HPP
11 #include <boost/gil/io/get_read_device.hpp>
12 #include <boost/gil/detail/mp11.hpp>
14 #include <type_traits>
16 namespace boost {
namespace gil {
23 typename ConversionPolicy,
28 template <
typename String,
typename FormatTag,
typename ConversionPolicy>
34 typename std::enable_if
38 detail::is_supported_path_spec<String>,
39 is_format_tag<FormatTag>
44 using device_t =
typename get_read_device<String, FormatTag>::type;
45 using type = reader<device_t, FormatTag, ConversionPolicy>;
48 template <
typename Device,
typename FormatTag,
typename ConversionPolicy>
54 typename std::enable_if
58 detail::is_adaptable_input_device<FormatTag, Device>,
59 is_format_tag<FormatTag>
64 using device_t =
typename get_read_device<Device, FormatTag>::type;
65 using type = reader<device_t, FormatTag, ConversionPolicy>;
69 template <
typename T,
typename FormatTag,
class Enable =
void>
74 template <
typename String,
typename FormatTag>
79 typename std::enable_if
83 detail::is_supported_path_spec<String>,
84 is_format_tag<FormatTag>
89 using device_t =
typename get_read_device<String, FormatTag>::type;
90 using type = dynamic_image_reader<device_t, FormatTag>;
93 template <
typename Device,
typename FormatTag>
94 struct get_dynamic_image_reader
98 typename std::enable_if
102 detail::is_adaptable_input_device<FormatTag, Device>,
103 is_format_tag<FormatTag>
108 using device_t =
typename get_read_device<Device, FormatTag>::type;
109 using type = dynamic_image_reader<device_t, FormatTag>;
113 template <
typename T,
typename FormatTag,
class Enable =
void>
118 template <
typename String,
typename FormatTag>
123 typename std::enable_if
127 detail::is_supported_path_spec<String>,
128 is_format_tag<FormatTag>
133 using device_t =
typename get_read_device<String, FormatTag>::type;
134 using type = reader_backend<device_t, FormatTag>;
137 template <
typename Device,
typename FormatTag>
138 struct get_reader_backend
142 typename std::enable_if
146 detail::is_adaptable_input_device<FormatTag, Device>,
147 is_format_tag<FormatTag>
152 using device_t =
typename get_read_device<Device, FormatTag>::type;
153 using type = reader_backend<device_t, FormatTag>;
157 template <
typename T,
typename FormatTag>
160 using device_t =
typename get_read_device<T, FormatTag>::type;
161 using type = scanline_reader<device_t, FormatTag>;
defined(BOOST_NO_CXX17_HDR_MEMORY_RESOURCE)
Definition: algorithm.hpp:36
Helper metafunction to generate dynamic image reader type.
Definition: get_reader.hpp:71
Helper metafunction to generate image backend type.
Definition: get_reader.hpp:115
Helper metafunction to generate image reader type.
Definition: get_reader.hpp:26
Helper metafunction to generate image scanline_reader type.
Definition: get_reader.hpp:159