/usr/include/boost/gil/io
NameSizeModeActions
base.hpp27990644editdlrm
bit_operations.hpp37640644editdlrm
conversion_policies.hpp29580644editdlrm
device.hpp166890644editdlrm
dynamic_io_new.hpp30790644editdlrm
error.hpp5790644editdlrm
get_reader.hpp39320644editdlrm
get_read_device.hpp14030644editdlrm
get_writer.hpp24520644editdlrm
get_write_device.hpp13350644editdlrm
io.hpp36350644editdlrm
make_backend.hpp36060644editdlrm
make_dynamic_image_reader.hpp44360644editdlrm
make_dynamic_image_writer.hpp53760644editdlrm
make_reader.hpp56700644editdlrm
make_scanline_reader.hpp31080644editdlrm
make_writer.hpp45650644editdlrm
path_spec.hpp39400644editdlrm
reader_base.hpp33230644editdlrm
read_and_convert_image.hpp100300644editdlrm
read_and_convert_view.hpp100670644editdlrm
read_image.hpp100900644editdlrm
read_image_info.hpp38300644editdlrm
read_view.hpp59930644editdlrm
row_buffer_helper.hpp51720644editdlrm
scanline_read_iterator.hpp23330644editdlrm
typedefs.hpp29800644editdlrm
write_view.hpp70950644editdlrm
Edit: /usr/include/boost/gil/io/dynamic_io_new.hpp (3079B)
// // Copyright 2005-2007 Adobe Systems Incorporated // // Distributed under the Boost Software License, Version 1.0 // See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt // #ifndef BOOST_GIL_IO_DYNAMIC_IO_NEW_HPP #define BOOST_GIL_IO_DYNAMIC_IO_NEW_HPP #include #include #include #include namespace boost { namespace gil { namespace detail { template struct construct_matched_t { template static bool apply(any_image& img, Pred pred) { if (pred.template apply, N-1>>()) { using image_t = mp11::mp_at_c, N-1>; image_t x; img = std::move(x); return true; } else return construct_matched_t::apply(img, pred); } }; template <> struct construct_matched_t<0> { template static bool apply(any_image&,Pred) { return false; } }; // A function object that can be passed to apply_operation. // Given a predicate IsSupported taking a view type and returning an boolean integral coonstant, // calls the apply method of OpClass with the view if the given view IsSupported, or throws an exception otherwise template class dynamic_io_fnobj { private: OpClass* _op; template void apply(View const& view, std::true_type) { _op->apply(view); } template void apply(View const& view, Info const & info, const std::true_type) { _op->apply(view, info); } template void apply(View const& /* view */, std::false_type) { io_error("dynamic_io: unsupported view type for the given file format"); } template void apply(View const& /* view */, Info const& /* info */, const std::false_type) { io_error("dynamic_io: unsupported view type for the given file format"); } public: dynamic_io_fnobj(OpClass* op) : _op(op) {} using result_type = void; template void operator()(View const& view) { apply(view, typename IsSupported::template apply::type()); } template< typename View, typename Info > void operator()(View const& view, Info const& info) { apply(view, info, typename IsSupported::template apply::type()); } }; } // namespace detail /// \brief Within the any_image, constructs an image with the given dimensions /// and a type that satisfies the given predicate template inline bool construct_matched(any_image& img, Pred pred) { constexpr auto size = mp11::mp_size>::value; return detail::construct_matched_t::apply(img, pred); } } } // namespace boost::gil #endif