Replace all scattered around forward declarations of
`dynamic_{x,y,xy}_step_type` with this common header,
where the templates are also documented.
Refine documentation of `transposed_type` - this is kept
in locator.hpp as it is not just related to the dynamic step.
when building tests with both, Boost.Build and CMake.
Disable concepts check for tests where range (e.g. std::array)
used as image pixel - not fully specialised as acceptable pixel type.
Ignore warnings from boost/concept_check.hpp
Rationalise uses of GCC and clang diagnostic push/pop,
with adding constraint for GCC 4.6+ as minimum version
where the pragma was introduced.
Closes#228
Remove unused #include-s and leave io/test/paths.hpp as sole
place of #include <boost/filesystem.hpp> for IO tests.
Silence annoying -Wconversion or -Wshorten-64-to-32 warning
from Boost.SmartPtr via Boost.Filesystem:
conversion to 'std::atomic<int>::__integral_type {aka int}'
from 'long int' may alter its value
Those are places boost::is_same can be replaced in non-intrusive way.
Remaining are types derived from boost::is_same, where the replacing
would affect all their uses - effectively switching from boost::true_/false_ types
to std::true_type and std::false_type.
Such change needs to come along with Boost.MPL to MP11 migration.
Replace boost::disable_if with std::enable_if and negated condition.
Update mpl::and_ expressions to yield value convertible to bool, instead of type.
Format std::enable_if expressions and nearby code they are nested in.
Replace complex template-based leading return type of functions
with auto and trailing return type for greater readability.
Replace some Boost type traits with <type_traits> features.
Replace 0 with nullptr where modernize-use-nullptr missed (updates #180).
Notice, boost::lazy_enable_if in extension/toolbox has not been replaced,
but it seems it could have been - need verification with number of compilers.
The constexpr belongs to the declaration specifiers (like static) and
not just the type specifiers (like cv-qualifiers), so it binds to
the declaration (like static), not the type (like const).
Refines #211
Replaced BOOST_STATIC_ASSERT with C++11 binary static_assert,
with empty message.
In future, this should make it possible to automatically refactor
into C++17 unary static_assert using clang-tidy and
its modernize-unary-static-assert check.
Closes#106
Replace boost::bind with std::bind from C++11.
Move template parameter comments to Doxygen \tparam-s,
so they are captured as proper documentation.
Tidy up code formatting.
Replace Boost.MPL boolean constants with C++11 equivalents.
Replace `throw()` with `noexcept`.
Replace empty constructor body with `default`.
Rename private class members to avoid leading underscore
(too easy to confuse as reserved identifier).
Tidy up with compact formatting.
Run clang-tidy 7.0 with `-checks='-*,modernize-use-using' -fix` against
single TU with `#include <boost/gil/extension/toolbox/*.hpp>`.
Manually refactor numerous typedef-s
- where missed by modernize-use-using check, not uncommon
- in code snippets in comments
Outcome is that searching for lower-case whole word typedef
in all the extension/toolbox/*.hpp should return no matches.
Run clang-tidy 7.0 with `-checks='-*,modernize-use-using' -fix` against
single TU with `#include <boost/gil/extension/io/*.hpp>`.
Manually refactor numerous typedef-s
- where missed by modernize-use-using check, not uncommon
- in code snippets in comments
Outcome is that searching for lower-case whole word typedef
in all the extension/io/*.hpp should return no matches.
Run clang-tidy 7.0 with `-checks='-*,modernize-use-using' -fix`
against single TU with `#include <boost/gil/io/*.hpp>`.
Manually refactor numerous typedef-s
- where missed by modernize-use-using check, not uncommon
- in code snippets in comments
Outcome is that searching for lower-case whole word typedef
in all io/*.hpp should return no matches.
Run clang-tidy 7.0 with `-checks='-*,modernize-use-using' -fix` against
single TU with `#include <boost/gil/extension/numeric/*.hpp>`.
Manually refactor numerous typedef-s
- where missed by modernize-use-using check, not uncommon
- in code snippets in comments
Outcome is that searching for lower-case whole word typedef
in all the extension/numeric/*.hpp should return no matches,
Run clang-tidy 7.0 with `-checks='-*,modernize-use-using' -fix`
against single TU with `#include <boost/gil/concepts/*.hpp>`.
Manually refactor numerous typedef-s
- where missed by modernize-use-using check, not uncommon
- in code snippets in comments
Outcome is that searching for lower-case whole word typedef
in all the extension/dynamic_image/*.hpp should return 5 matches,
in definitions of macros (TODO).
Run clang-tidy 7.0 with `-checks='-*,modernize-use-using' -fix`
against single TU with `#include <boost/gil/concepts/*.hpp>`.
Manually refactor numerous typedef-s
- where missed by modernize-use-using check, not uncommon
- in code snippets in comments
Outcome is that searching for lower-case whole word typedef
in all the top-level core headers should return no matches.
The problem appears to be due to the same definitions copied from one
part of the library to the other.
The definitions have been shuffled to fix the compilation,
but purely based on searching the code for what is used where,
thus without confidence where those belong by author's intention.
Fixes#183
Used clang-tidy 7.0 with the command:
run-clang-tidy.py \
-header-filter='boost\/gil\/.*' \
-checks='-*,modernize-use-nullptr' -fix
Update CONTRIBUTING.md on how to generate compile command
database and run clang-tidy.
The reference to `writer<Device,jpeg_tag>` is clearly incorrect:
- writer has no members `init_device`, `empty_buffer`, `closed_buffer`
- if use of writer was correct there, it would require
`#include <boost/gil/extension/io/jpeg/detail/writer.hpp>`, but that
would impose cyclic-dependency between writer.hpp and writer_backend.hpp.
Add missing typename in mpl::if_ condition result.
Restore BOOST_CXX14_CONSTEXPR in boost::algorithm::clamp function
- apparently, GCC 5.5.0 does not compile it with C++11 constexpr.
Still not adding subchroma_image.cpp to toolbox test target
input sources due to run-time failure.
Depends on #176