8 #ifndef BOOST_GIL_IO_GET_WRITE_DEVICE_HPP     9 #define BOOST_GIL_IO_GET_WRITE_DEVICE_HPP    11 #include <boost/gil/detail/mp11.hpp>    12 #include <boost/gil/io/device.hpp>    13 #include <boost/gil/io/path_spec.hpp>    15 #include <type_traits>    17 namespace boost { 
namespace gil {
    19 template <
typename T, 
typename FormatTag, 
class Enable = 
void>
    20 struct get_write_device {};
    22 template <
typename Device, 
typename FormatTag>
    23 struct get_write_device
    27     typename std::enable_if
    31             detail::is_adaptable_output_device<FormatTag, Device>,
    32             is_format_tag<FormatTag>
    38         typename detail::is_adaptable_output_device<FormatTag, Device>::device_type;
    41 template <
typename String, 
typename FormatTag>
    42 struct get_write_device
    46     typename std::enable_if
    50             detail::is_supported_path_spec<String>,
    51             is_format_tag<FormatTag>
    56     using type = detail::file_stream_device<FormatTag>;