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>;