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>;
 Helper metafunction to generate dynamic image reader type.
Definition: get_reader.hpp:70
Helper metafunction to generate image backend type.
Definition: get_reader.hpp:114
Helper metafunction to generate image reader type.
Definition: get_reader.hpp:26
Helper metafunction to generate image scanline_reader type.
Definition: get_reader.hpp:158