8 #ifndef BOOST_GIL_IO_BASE_HPP     9 #define BOOST_GIL_IO_BASE_HPP    11 #include <boost/gil/extension/toolbox/toolbox.hpp>    13 #include <boost/gil/bit_aligned_pixel_reference.hpp>    14 #include <boost/gil/bit_aligned_pixel_iterator.hpp>    15 #include <boost/gil/color_convert.hpp>    16 #include <boost/gil/utilities.hpp>    17 #include <boost/gil/io/error.hpp>    18 #include <boost/gil/io/typedefs.hpp>    22 #include <type_traits>    25 namespace boost { 
namespace gil {
    29 template< 
typename Property >
    32     using type = Property;
    35 template<
typename FormatTag>
    36 struct is_format_tag : std::is_base_of<format_tag, FormatTag> {};
    38 struct image_read_settings_base
    42     image_read_settings_base()
    47     image_read_settings_base( 
const point_t& top_left
    50     : _top_left( top_left )
    57     void set( 
const point_t& top_left
    79 template< 
typename Pixel, 
typename FormatTag > 
struct is_write_supported {};
    84 template< 
typename Property >
    87     using type = Property;
    92 struct read_support_true  { 
static constexpr 
bool is_supported = 
true; };
    93 struct read_support_false { 
static constexpr 
bool is_supported = 
false; };
    94 struct write_support_true { 
static constexpr 
bool is_supported = 
true; };
    95 struct write_support_false{ 
static constexpr 
bool is_supported = 
false; };
    99 template< 
typename Device, 
typename FormatTag > 
struct reader_backend;
   100 template< 
typename Device, 
typename FormatTag > 
struct writer_backend;
   102 template< 
typename FormatTag > 
struct image_read_info;
   103 template< 
typename FormatTag > 
struct image_read_settings;
   104 template< 
typename FormatTag, 
typename Log = no_log > 
struct image_write_info;