is_bit_aligned.hpp 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. //
  2. // Copyright 2012 Christian Henning, Andreas Pokorny, Lubomir Bourdev
  3. //
  4. // Distributed under the Boost Software License, Version 1.0
  5. // See accompanying file LICENSE_1_0.txt or copy at
  6. // http://www.boost.org/LICENSE_1_0.txt
  7. //
  8. #ifndef BOOST_GIL_EXTENSION_TOOLBOX_METAFUNCTIONS_IS_BIT_ALIGNED_TYPE_HPP
  9. #define BOOST_GIL_EXTENSION_TOOLBOX_METAFUNCTIONS_IS_BIT_ALIGNED_TYPE_HPP
  10. #include <boost/gil/bit_aligned_pixel_reference.hpp>
  11. #include <type_traits>
  12. namespace boost{ namespace gil {
  13. /// is_bit_aligned metafunctions
  14. /// \brief Determines whether the given type is bit_aligned.
  15. template< typename PixelRef >
  16. struct is_bit_aligned : std::false_type {};
  17. template <typename B, typename C, typename L, bool M>
  18. struct is_bit_aligned<bit_aligned_pixel_reference<B, C, L, M>> : std::true_type {};
  19. template <typename B, typename C, typename L, bool M>
  20. struct is_bit_aligned<bit_aligned_pixel_reference<B, C, L, M> const> : std::true_type {};
  21. template <typename B, typename C, typename L>
  22. struct is_bit_aligned<packed_pixel<B, C, L>> : std::true_type {};
  23. template <typename B, typename C, typename L>
  24. struct is_bit_aligned<packed_pixel<B, C, L> const> : std::true_type {};
  25. }} // namespace boost::gil
  26. #endif