5611bd5807
Use type traits and features of C++11, then use Boost.MP11. Remove unused and unnecessary metafunctions in `detail` namespace. Remove explicit access to ::type as no longer necessary with MP11. Clean up and reformat code according to the current guidelines. Legacy tests have been updated where necessary to accommodate switch to MP11. Replace std::is_integral with gil::detail::is_channel_integral Replacing boost::is_integral with std::is_integral is C++ UB: C++11 / 20.11.2 Header <type_traits> synopsis 1 The behavior of a program that adds specializations for any of the class templates defined in this subclause is undefined unless otherwise specified. Implements also proposal in #93 Closes #229
24 lines
883 B
C++
24 lines
883 B
C++
//
|
|
// 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
|
|
//
|
|
#include <boost/gil.hpp>
|
|
#include <boost/gil/extension/dynamic_image/any_image.hpp>
|
|
#include <boost/gil/extension/io/jpeg.hpp>
|
|
#include <boost/mp11.hpp>
|
|
|
|
int main()
|
|
{
|
|
namespace gil = boost::gil;
|
|
|
|
using my_images_t = boost::mp11::mp_list<gil::gray8_image_t, gil::rgb8_image_t, gil::gray16_image_t, gil::rgb16_image_t>;
|
|
gil::any_image<my_images_t> dynamic_image;
|
|
gil::read_image("test.jpg", dynamic_image, gil::jpeg_tag());
|
|
// Save the image upside down, preserving its native color space and channel depth
|
|
auto view = gil::flipped_up_down_view(gil::const_view(dynamic_image));
|
|
gil::write_view("out-dynamic_image.jpg", view, gil::jpeg_tag());
|
|
}
|