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>
16namespace boost {
namespace gil {
23 typename ConversionPolicy,
28template <
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>;
48template <
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>;
69template <
typename T,
typename FormatTag,
class Enable =
void>
74template <
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>;
93template <
typename Device,
typename FormatTag>
94struct 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>;
113template <
typename T,
typename FormatTag,
class Enable =
void>
118template <
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>;
137template <
typename Device,
typename FormatTag>
138struct 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>;
157template <
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