8 #ifndef BOOST_GIL_IO_MAKE_SCANLINE_READER_HPP     9 #define BOOST_GIL_IO_MAKE_SCANLINE_READER_HPP    11 #include <boost/gil/detail/mp11.hpp>    12 #include <boost/gil/io/get_reader.hpp>    14 #include <type_traits>    16 namespace boost { 
namespace gil {
    18 template <
typename String, 
typename FormatTag>
    20 auto make_scanline_reader(String 
const& file_name, FormatTag 
const&,
    21     typename std::enable_if
    25             detail::is_supported_path_spec<String>,
    26             is_format_tag<FormatTag>
    29     -> 
typename get_scanline_reader<String, FormatTag>::type
    31     using device_t = 
typename get_read_device<String, FormatTag>::type;
    33         detail::convert_to_native_string(file_name),
    34         typename detail::file_stream_device<FormatTag>::read_tag());
    36     return typename get_scanline_reader<String, FormatTag>::type(
    37         device, image_read_settings<FormatTag>());
    40 template< 
typename FormatTag >
    42 typename get_scanline_reader< std::wstring
    45 make_scanline_reader( 
const std::wstring& file_name
    49     const char* str = detail::convert_to_native_string( file_name );
    51     typename get_read_device< std::wstring
    54                                           , 
typename detail::file_stream_device< FormatTag >::read_tag()
    59     return typename get_scanline_reader< std::wstring
    62                                               , image_read_settings< FormatTag >()
    66 #ifdef BOOST_GIL_IO_ADD_FS_PATH_SUPPORT    67 template< 
typename FormatTag >
    69 typename get_scanline_reader< std::wstring
    72 make_scanline_reader( 
const filesystem::path& path
    76     return make_scanline_reader( path.wstring()
    77                                , image_read_settings< FormatTag >()
    80 #endif // BOOST_GIL_IO_ADD_FS_PATH_SUPPORT    82 template <
typename Device, 
typename FormatTag>
    84 auto make_scanline_reader(Device& io_dev, FormatTag 
const&,
    85     typename std::enable_if
    89             detail::is_adaptable_input_device<FormatTag, Device>,
    90             is_format_tag<FormatTag>
    93     -> 
typename get_scanline_reader<Device, FormatTag>::type
    95     return make_scanline_reader(io_dev, image_read_settings<FormatTag>());