summaryrefslogtreecommitdiff
path: root/boost/gil/io/make_backend.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/gil/io/make_backend.hpp')
-rw-r--r--boost/gil/io/make_backend.hpp179
1 files changed, 75 insertions, 104 deletions
diff --git a/boost/gil/io/make_backend.hpp b/boost/gil/io/make_backend.hpp
index e0a4a1f5dd..a2ca6d8c6d 100644
--- a/boost/gil/io/make_backend.hpp
+++ b/boost/gil/io/make_backend.hpp
@@ -11,143 +11,114 @@
#include <boost/gil/io/get_reader.hpp>
-#include <boost/utility/enable_if.hpp>
+#include <boost/mpl/and.hpp>
+
+#include <type_traits>
namespace boost { namespace gil {
-template< typename String
- , typename FormatTag
- >
+template <typename String, typename FormatTag>
inline
-typename get_reader_backend< String
- , FormatTag
- >::type
-make_reader_backend( const String& file_name
- , const image_read_settings< FormatTag >& settings
- , typename enable_if< mpl::and_< detail::is_supported_path_spec< String >
- , is_format_tag< FormatTag >
- >
- >::type* /* ptr */ = 0
- )
+auto make_reader_backend(
+ String const& file_name, image_read_settings<FormatTag> const& settings,
+ typename std::enable_if
+ <
+ mpl::and_
+ <
+ detail::is_supported_path_spec<String>,
+ is_format_tag<FormatTag>
+ >::value
+ >::type* /*dummy*/ = nullptr)
+ -> typename get_reader_backend<String, FormatTag>::type
{
- typedef typename get_read_device< String
- , FormatTag
- >::type device_t;
+ using device_t = typename get_read_device<String, FormatTag>::type;
- device_t device( detail::convert_to_native_string( file_name )
- , typename detail::file_stream_device< FormatTag >::read_tag()
- );
+ device_t device(
+ detail::convert_to_native_string(file_name),
+ typename detail::file_stream_device<FormatTag>::read_tag());
- return reader_backend< device_t, FormatTag >( device, settings );
+ return reader_backend<device_t, FormatTag>(device, settings);
}
-template< typename FormatTag >
+template <typename FormatTag>
inline
-typename get_reader_backend< std::wstring
- , FormatTag
- >::type
-make_reader_backend( const std::wstring& file_name
- , const image_read_settings< FormatTag >& settings
- )
+auto make_reader_backend(
+ std::wstring const& file_name, image_read_settings<FormatTag> const& settings)
+ -> typename get_reader_backend<std::wstring, FormatTag>::type
{
- typedef typename get_read_device< std::wstring
- , FormatTag
- >::type device_t;
-
- const char* str = detail::convert_to_native_string( file_name );
+ char const* str = detail::convert_to_native_string(file_name);
- device_t device( str
- , typename detail::file_stream_device< FormatTag >::read_tag()
- );
+ using device_t = typename get_read_device<std::wstring, FormatTag>::type;
+ device_t device(str, typename detail::file_stream_device<FormatTag>::read_tag());
- delete[] str;
+ delete[] str; // TODO: RAII
- return reader_backend< device_t, FormatTag >( device, settings );
+ return reader_backend<device_t, FormatTag>(device, settings);
}
#ifdef BOOST_GIL_IO_ADD_FS_PATH_SUPPORT
-template< typename FormatTag >
+template <typename FormatTag>
inline
-typename get_reader_backend< std::wstring
- , FormatTag
- >::type
-make_reader_backend( const filesystem::path& path
- , const image_read_settings< FormatTag >& settings
- )
+auto make_reader_backend(
+ filesystem::path const& path,
+ image_read_settings<FormatTag> const& settings)
+ -> typename get_reader_backend<std::wstring, FormatTag>::type
{
- return make_reader_backend( path.wstring()
- , settings
- );
+ return make_reader_backend(path.wstring(), settings);
}
-#endif // BOOST_GIL_IO_ADD_FS_PATH_SUPPORT
+#endif // BOOST_GIL_IO_ADD_FS_PATH_SUPPORT
-template< typename Device
- , typename FormatTag
- >
+template <typename Device, typename FormatTag>
inline
-typename get_reader_backend< Device
- , FormatTag
- >::type
-make_reader_backend( Device& io_dev
- , const image_read_settings< FormatTag >& settings
- , typename enable_if< mpl::and_< detail::is_adaptable_input_device< FormatTag
- , Device
- >
- , is_format_tag< FormatTag >
- >
- >::type* /* ptr */ = 0
- )
+auto make_reader_backend(Device& io_dev, image_read_settings<FormatTag> const& settings,
+ typename std::enable_if
+ <
+ mpl::and_
+ <
+ detail::is_adaptable_input_device<FormatTag, Device>,
+ is_format_tag<FormatTag>
+ >::value
+ >::type* /*dummy*/ = nullptr)
+ -> typename get_reader_backend<Device, FormatTag>::type
{
- typedef typename get_read_device< Device
- , FormatTag
- >::type device_t;
-
- device_t device( io_dev );
+ using device_t = typename get_read_device<Device, FormatTag>::type;
+ device_t device(io_dev);
- return reader_backend< device_t, FormatTag >( device, settings );
+ return reader_backend<device_t, FormatTag>(device, settings);
}
-
-
-template< typename String
- , typename FormatTag
- >
+template <typename String, typename FormatTag>
inline
-typename get_reader_backend< String
- , FormatTag
- >::type
-make_reader_backend( const String& file_name
- , const FormatTag&
- , typename enable_if< mpl::and_< detail::is_supported_path_spec< String >
- , is_format_tag< FormatTag >
- >
- >::type* /* ptr */ = 0
- )
+auto make_reader_backend(String const& file_name, FormatTag const&,
+ typename std::enable_if
+ <
+ mpl::and_
+ <
+ detail::is_supported_path_spec<String>,
+ is_format_tag<FormatTag>
+ >::value
+ >::type* /*dummy*/ = nullptr)
+ -> typename get_reader_backend<String, FormatTag>::type
{
- return make_reader_backend( file_name, image_read_settings< FormatTag >() );
+ return make_reader_backend(file_name, image_read_settings<FormatTag>());
}
-template< typename Device
- , typename FormatTag
- >
+template <typename Device, typename FormatTag>
inline
-typename get_reader_backend< Device
- , FormatTag
- >::type
-make_reader_backend( Device& io_dev
- , const FormatTag&
- , typename enable_if< mpl::and_< detail::is_adaptable_input_device< FormatTag
- , Device
- >
- , is_format_tag< FormatTag >
- >
- >::type* /* ptr */ = 0
- )
+auto make_reader_backend(Device& io_dev, FormatTag const&,
+ typename std::enable_if
+ <
+ mpl::and_
+ <
+ detail::is_adaptable_input_device<FormatTag, Device>,
+ is_format_tag<FormatTag>
+ >::value
+ >::type* /*dummy*/ = nullptr)
+ -> typename get_reader_backend<Device, FormatTag>::type
{
- return make_reader_backend( io_dev, image_read_settings< FormatTag >() );
+ return make_reader_backend(io_dev, image_read_settings<FormatTag>());
}
-} // namespace gil
-} // namespace boost
+}} // namespace boost::gil
#endif