8 #ifndef BOOST_GIL_IO_CONVERSION_POLICIES_HPP     9 #define BOOST_GIL_IO_CONVERSION_POLICIES_HPP    11 #include <boost/gil/image_view_factory.hpp>    12 #include <boost/gil/detail/mp11.hpp>    13 #include <boost/gil/io/error.hpp>    17 #include <type_traits>    19 namespace boost{ 
namespace gil { 
namespace detail {
    21 struct read_and_no_convert
    24     using color_converter_type = 
void *;
    26     template <
typename InIterator, 
typename OutIterator>
    28         InIterator 
const& , InIterator 
const&  , OutIterator ,
    29         typename std::enable_if
    35                     typename std::iterator_traits<InIterator>::value_type,
    36                     typename std::iterator_traits<OutIterator>::value_type
    41         io_error(
"Data cannot be copied because the pixels are incompatible.");
    44     template <
typename InIterator, 
typename OutIterator>
    45     void read(InIterator 
const& begin, InIterator 
const& end, OutIterator out,
    46         typename std::enable_if
    50                 typename std::iterator_traits<InIterator>::value_type,
    51                 typename std::iterator_traits<OutIterator>::value_type
    60 struct read_and_convert
    63     using color_converter_type = default_color_converter;
    69     read_and_convert( 
const color_converter_type& cc )
    73     template< 
typename InIterator
    74             , 
typename OutIterator
    76     void read( 
const InIterator& begin
    77              , 
const InIterator& end
    81         using deref_t = color_convert_deref_fn<typename std::iterator_traits<InIterator>::reference
    82                                       , 
typename std::iterator_traits<OutIterator>::value_type 
    96 template< 
typename Conversion_Policy >
   100 struct is_read_only<detail::read_and_no_convert> : std::true_type {};
 Determines if reader type is read only ( no conversion ).
Definition: conversion_policies.hpp:97
BOOST_FORCEINLINE auto copy(boost::gil::pixel< T, CS > *first, boost::gil::pixel< T, CS > *last, boost::gil::pixel< T, CS > *dst) -> boost::gil::pixel< T, CS > *
Copy when both src and dst are interleaved and of the same type can be just memmove.
Definition: algorithm.hpp:139