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> 13 #include <boost/mpl/and.hpp> 15 #include <type_traits> 17 namespace boost {
namespace gil {
24 typename ConversionPolicy,
29 template <
typename String,
typename FormatTag,
typename ConversionPolicy>
35 typename std::enable_if
39 detail::is_supported_path_spec<String>,
40 is_format_tag<FormatTag>
45 using device_t =
typename get_read_device<String, FormatTag>::type;
46 using type = reader<device_t, FormatTag, ConversionPolicy>;
49 template <
typename Device,
typename FormatTag,
typename ConversionPolicy>
55 typename std::enable_if
59 detail::is_adaptable_input_device<FormatTag, Device>,
60 is_format_tag<FormatTag>
65 using device_t =
typename get_read_device<Device, FormatTag>::type;
66 using type = reader<device_t, FormatTag, ConversionPolicy>;
70 template <
typename T,
typename FormatTag,
class Enable =
void>
75 template <
typename String,
typename FormatTag>
80 typename std::enable_if
84 detail::is_supported_path_spec<String>,
85 is_format_tag<FormatTag>
90 using device_t =
typename get_read_device<String, FormatTag>::type;
91 using type = dynamic_image_reader<device_t, FormatTag>;
94 template <
typename Device,
typename FormatTag>
99 typename std::enable_if
103 detail::is_adaptable_input_device<FormatTag, Device>,
104 is_format_tag<FormatTag>
109 using device_t =
typename get_read_device<Device, FormatTag>::type;
110 using type = dynamic_image_reader<device_t, FormatTag>;
114 template <
typename T,
typename FormatTag,
class Enable =
void>
119 template <
typename String,
typename FormatTag>
124 typename std::enable_if
128 detail::is_supported_path_spec<String>,
129 is_format_tag<FormatTag>
134 using device_t =
typename get_read_device<String, FormatTag>::type;
135 using type = reader_backend<device_t, FormatTag>;
138 template <
typename Device,
typename FormatTag>
143 typename std::enable_if
147 detail::is_adaptable_input_device<FormatTag, Device>,
148 is_format_tag<FormatTag>
153 using device_t =
typename get_read_device<Device, FormatTag>::type;
154 using type = reader_backend<device_t, FormatTag>;
158 template <
typename T,
typename FormatTag>
161 using device_t =
typename get_read_device<T, FormatTag>::type;
162 using type = scanline_reader<device_t, FormatTag>;
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
Definition: algorithm.hpp:30
Helper metafunction to generate image reader type.
Definition: get_reader.hpp:27
Helper metafunction to generate image scanline_reader type.
Definition: get_reader.hpp:159