// // Copyright 2019 Mateusz Loskot // // 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 #include // kth_element_type #include // kth_element_type #include #include #include // kth_element_type #include // kth_element_type #include #include #include namespace gil = boost::gil; // NOTE: Iterator does not model HasDynamicYStepTypeConcept // TODO: Add compile-fail tests to verify that. template void test_non_step() { static_assert(std::is_same < gil::memory_based_step_iterator, typename gil::dynamic_x_step_type::type >::value, "iterator does not model HasDynamicXStepTypeConcept"); static_assert(!std::is_same < Iterator, typename gil::dynamic_x_step_type::type >::value, "dynamic_x_step_type yields X step iterator, not X iterator"); } template void test_step() { static_assert(std::is_same < Iterator, typename gil::dynamic_x_step_type::type >::value, "iterator does not model HasDynamicXStepTypeConcept"); static_assert(!std::is_same < typename Iterator::x_iterator, typename gil::dynamic_x_step_type::type >::value, "dynamic_x_step_type yields X step iterator, not X iterator"); } int main() { test_non_step(); test_non_step(); test_non_step(); test_non_step(); test_non_step(); test_non_step(); test_non_step(); test_step(); test_step(); test_step(); test_step(); test_step(); test_step(); test_step(); test_non_step(); test_non_step(); test_non_step(); test_non_step(); test_step(); test_step(); test_step(); test_step(); test_non_step(); test_non_step(); test_non_step(); test_non_step(); test_step(); test_step(); test_step(); test_step(); test_non_step(); test_non_step(); test_non_step(); test_non_step(); test_step(); test_step(); test_step(); test_step(); test_non_step(); test_non_step(); test_non_step(); test_non_step(); test_step(); test_step(); test_step(); test_step(); test_non_step(); test_non_step(); test_non_step(); test_non_step(); test_non_step(); test_non_step(); test_non_step(); test_non_step(); test_step(); test_step(); test_step(); test_step(); test_step(); test_step(); test_step(); test_step(); test_non_step(); test_non_step(); test_non_step(); test_non_step(); test_non_step(); test_non_step(); test_non_step(); test_non_step(); test_step(); test_step(); test_step(); test_step(); test_step(); test_step(); test_step(); test_step(); test_non_step(); test_non_step(); test_non_step(); test_non_step(); test_non_step(); test_non_step(); test_non_step(); test_non_step(); test_step(); test_step(); test_step(); test_step(); test_step(); test_step(); test_step(); test_step(); }