Author: marshall Date: Thu Jun 15 00:44:49 2017 New Revision: 305453 URL: http://llvm.org/viewvc/llvm-project?rev=305453&view=rev Log: Renamed some of the newly added tests. No functional change
Added: libcxx/trunk/test/std/numerics/numeric.ops/exclusive.scan/exclusive_scan.pass.cpp - copied unchanged from r305452, libcxx/trunk/test/std/numerics/numeric.ops/exclusive.scan/exclusive_scan_iter_iter_iter.pass.cpp libcxx/trunk/test/std/numerics/numeric.ops/exclusive.scan/exclusive_scan_init_op.pass.cpp - copied unchanged from r305452, libcxx/trunk/test/std/numerics/numeric.ops/exclusive.scan/exclusive_scan_iter_iter_iter_init_op.pass.cpp libcxx/trunk/test/std/numerics/numeric.ops/reduce/reduce.pass.cpp - copied unchanged from r305452, libcxx/trunk/test/std/numerics/numeric.ops/reduce/reduce_iter_iter.pass.cpp libcxx/trunk/test/std/numerics/numeric.ops/reduce/reduce_init.pass.cpp - copied unchanged from r305452, libcxx/trunk/test/std/numerics/numeric.ops/reduce/reduce_iter_iter_T.pass.cpp libcxx/trunk/test/std/numerics/numeric.ops/reduce/reduce_init_op.pass.cpp - copied unchanged from r305452, libcxx/trunk/test/std/numerics/numeric.ops/reduce/reduce_iter_iter_T_op.pass.cpp libcxx/trunk/test/std/numerics/numeric.ops/transform.exclusive.scan/transform_exclusive_scan_init_bop_uop.pass.cpp - copied unchanged from r305452, libcxx/trunk/test/std/numerics/numeric.ops/transform.exclusive.scan/transform_exclusive_scan_iter_iter_iter_init_bop_uop.pass.cpp Removed: libcxx/trunk/test/std/numerics/numeric.ops/exclusive.scan/exclusive_scan_iter_iter_iter.pass.cpp libcxx/trunk/test/std/numerics/numeric.ops/exclusive.scan/exclusive_scan_iter_iter_iter_init_op.pass.cpp libcxx/trunk/test/std/numerics/numeric.ops/reduce/reduce_iter_iter.pass.cpp libcxx/trunk/test/std/numerics/numeric.ops/reduce/reduce_iter_iter_T.pass.cpp libcxx/trunk/test/std/numerics/numeric.ops/reduce/reduce_iter_iter_T_op.pass.cpp libcxx/trunk/test/std/numerics/numeric.ops/transform.exclusive.scan/transform_exclusive_scan_iter_iter_iter_init_bop_uop.pass.cpp Removed: libcxx/trunk/test/std/numerics/numeric.ops/exclusive.scan/exclusive_scan_iter_iter_iter.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/numerics/numeric.ops/exclusive.scan/exclusive_scan_iter_iter_iter.pass.cpp?rev=305452&view=auto ============================================================================== --- libcxx/trunk/test/std/numerics/numeric.ops/exclusive.scan/exclusive_scan_iter_iter_iter.pass.cpp (original) +++ libcxx/trunk/test/std/numerics/numeric.ops/exclusive.scan/exclusive_scan_iter_iter_iter.pass.cpp (removed) @@ -1,97 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -// <numeric> -// UNSUPPORTED: c++98, c++03, c++11, c++14 - -// template<class InputIterator, class OutputIterator, class T> -// OutputIterator exclusive_scan(InputIterator first, InputIterator last, -// OutputIterator result, T init); -// - -#include <numeric> -#include <vector> -#include <cassert> - -#include "test_iterators.h" - -template <class Iter1, class T, class Iter2> -void -test(Iter1 first, Iter1 last, T init, Iter2 rFirst, Iter2 rLast) -{ - std::vector<typename std::iterator_traits<Iter1>::value_type> v; - -// Not in place - std::exclusive_scan(first, last, std::back_inserter(v), init); - assert(std::equal(v.begin(), v.end(), rFirst, rLast)); - -// In place - v.clear(); - v.assign(first, last); - std::exclusive_scan(v.begin(), v.end(), v.begin(), init); - assert(std::equal(v.begin(), v.end(), rFirst, rLast)); -} - - -template <class Iter> -void -test() -{ - int ia[] = {1, 3, 5, 7, 9}; - const int pRes[] = {0, 1, 4, 9, 16}; - const unsigned sa = sizeof(ia) / sizeof(ia[0]); - static_assert(sa == sizeof(pRes) / sizeof(pRes[0])); // just to be sure - - for (unsigned int i = 0; i < sa; ++i ) - test(Iter(ia), Iter(ia + i), 0, pRes, pRes + i); -} - -int triangle(int n) { return n*(n+1)/2; } - -// Basic sanity -void basic_tests() -{ - { - std::vector<int> v(10); - std::fill(v.begin(), v.end(), 3); - std::exclusive_scan(v.begin(), v.end(), v.begin(), 50); - for (size_t i = 0; i < v.size(); ++i) - assert(v[i] == 50 + (int) i * 3); - } - - { - std::vector<int> v(10); - std::iota(v.begin(), v.end(), 0); - std::exclusive_scan(v.begin(), v.end(), v.begin(), 30); - for (size_t i = 0; i < v.size(); ++i) - assert(v[i] == 30 + triangle(i-1)); - } - - { - std::vector<int> v(10); - std::iota(v.begin(), v.end(), 1); - std::exclusive_scan(v.begin(), v.end(), v.begin(), 40); - for (size_t i = 0; i < v.size(); ++i) - assert(v[i] == 40 + triangle(i)); - } - -} - -int main() -{ - basic_tests(); - -// All the iterator categories - test<input_iterator <const int*> >(); - test<forward_iterator <const int*> >(); - test<bidirectional_iterator<const int*> >(); - test<random_access_iterator<const int*> >(); - test<const int*>(); - test< int*>(); -} Removed: libcxx/trunk/test/std/numerics/numeric.ops/exclusive.scan/exclusive_scan_iter_iter_iter_init_op.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/numerics/numeric.ops/exclusive.scan/exclusive_scan_iter_iter_iter_init_op.pass.cpp?rev=305452&view=auto ============================================================================== --- libcxx/trunk/test/std/numerics/numeric.ops/exclusive.scan/exclusive_scan_iter_iter_iter_init_op.pass.cpp (original) +++ libcxx/trunk/test/std/numerics/numeric.ops/exclusive.scan/exclusive_scan_iter_iter_iter_init_op.pass.cpp (removed) @@ -1,87 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -// <numeric> -// UNSUPPORTED: c++98, c++03, c++11, c++14 - -// template<class InputIterator, class OutputIterator, class T, class BinaryOperation> -// OutputIterator -// exclusive_scan(InputIterator first, InputIterator last, -// OutputIterator result, -// T init, BinaryOperation binary_op); // C++17 - -#include <numeric> -#include <vector> -#include <cassert> - -#include "test_iterators.h" - -template <class Iter1, class T, class Op, class Iter2> -void -test(Iter1 first, Iter1 last, T init, Op op, Iter2 rFirst, Iter2 rLast) -{ - std::vector<typename std::iterator_traits<Iter1>::value_type> v; - -// Not in place - std::exclusive_scan(first, last, std::back_inserter(v), init, op); - assert(std::equal(v.begin(), v.end(), rFirst, rLast)); - -// In place - v.clear(); - v.assign(first, last); - std::exclusive_scan(v.begin(), v.end(), v.begin(), init, op); - assert(std::equal(v.begin(), v.end(), rFirst, rLast)); -} - - -template <class Iter> -void -test() -{ - int ia[] = {1, 3, 5, 7, 9}; - const int pRes[] = {0, 1, 4, 9, 16}; - const int mRes[] = {1, 1, 3, 15, 105}; - const unsigned sa = sizeof(ia) / sizeof(ia[0]); - static_assert(sa == sizeof(pRes) / sizeof(pRes[0])); // just to be sure - static_assert(sa == sizeof(mRes) / sizeof(mRes[0])); // just to be sure - - for (unsigned int i = 0; i < sa; ++i ) { - test(Iter(ia), Iter(ia + i), 0, std::plus<>(), pRes, pRes + i); - test(Iter(ia), Iter(ia + i), 1, std::multiplies<>(), mRes, mRes + i); - } -} - -int main() -{ -// All the iterator categories - test<input_iterator <const int*> >(); - test<forward_iterator <const int*> >(); - test<bidirectional_iterator<const int*> >(); - test<random_access_iterator<const int*> >(); - test<const int*>(); - test< int*>(); - -// Make sure that the calculations are done using the init typedef - { - std::vector<unsigned char> v(10); - std::iota(v.begin(), v.end(), 1); - std::vector<int> res; - std::exclusive_scan(v.begin(), v.end(), std::back_inserter(res), 1, std::multiplies<>()); - - assert(res.size() == 10); - int j = 1; - assert(res[0] == 1); - for (size_t i = 1; i < v.size(); ++i) - { - j *= i; - assert(res[i] == j); - } - } -} - \ No newline at end of file Removed: libcxx/trunk/test/std/numerics/numeric.ops/reduce/reduce_iter_iter.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/numerics/numeric.ops/reduce/reduce_iter_iter.pass.cpp?rev=305452&view=auto ============================================================================== --- libcxx/trunk/test/std/numerics/numeric.ops/reduce/reduce_iter_iter.pass.cpp (original) +++ libcxx/trunk/test/std/numerics/numeric.ops/reduce/reduce_iter_iter.pass.cpp (removed) @@ -1,63 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -// <numeric> -// UNSUPPORTED: c++98, c++03, c++11, c++14 - -// template<class InputIterator> -// typename iterator_traits<InputIterator>::value_type -// reduce(InputIterator first, InputIterator last); - -#include <numeric> -#include <cassert> - -#include "test_iterators.h" - -template <class Iter, class T> -void -test(Iter first, Iter last, T x) -{ - static_assert( std::is_same_v<typename std::iterator_traits<decltype(first)>::value_type, - decltype(std::reduce(first, last))> ); - assert(std::reduce(first, last) == x); -} - -template <class Iter> -void -test() -{ - int ia[] = {1, 2, 3, 4, 5, 6}; - unsigned sa = sizeof(ia) / sizeof(ia[0]); - test(Iter(ia), Iter(ia), 0); - test(Iter(ia), Iter(ia+1), 1); - test(Iter(ia), Iter(ia+2), 3); - test(Iter(ia), Iter(ia+sa), 21); -} - -template <typename T> -void test_return_type() -{ - T *p = nullptr; - static_assert( std::is_same_v<T, decltype(std::reduce(p, p))> ); -} - -int main() -{ - test_return_type<char>(); - test_return_type<int>(); - test_return_type<unsigned long>(); - test_return_type<float>(); - test_return_type<double>(); - - test<input_iterator<const int*> >(); - test<forward_iterator<const int*> >(); - test<bidirectional_iterator<const int*> >(); - test<random_access_iterator<const int*> >(); - test<const int*>(); -} Removed: libcxx/trunk/test/std/numerics/numeric.ops/reduce/reduce_iter_iter_T.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/numerics/numeric.ops/reduce/reduce_iter_iter_T.pass.cpp?rev=305452&view=auto ============================================================================== --- libcxx/trunk/test/std/numerics/numeric.ops/reduce/reduce_iter_iter_T.pass.cpp (original) +++ libcxx/trunk/test/std/numerics/numeric.ops/reduce/reduce_iter_iter_T.pass.cpp (removed) @@ -1,67 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -// <numeric> -// UNSUPPORTED: c++98, c++03, c++11, c++14 - -// template<class InputIterator, class T> -// T reduce(InputIterator first, InputIterator last, T init); - -#include <numeric> -#include <cassert> - -#include "test_iterators.h" - -template <class Iter, class T> -void -test(Iter first, Iter last, T init, T x) -{ - static_assert( std::is_same_v<T, decltype(std::reduce(first, last, init))> ); - assert(std::reduce(first, last, init) == x); -} - -template <class Iter> -void -test() -{ - int ia[] = {1, 2, 3, 4, 5, 6}; - unsigned sa = sizeof(ia) / sizeof(ia[0]); - test(Iter(ia), Iter(ia), 0, 0); - test(Iter(ia), Iter(ia), 1, 1); - test(Iter(ia), Iter(ia+1), 0, 1); - test(Iter(ia), Iter(ia+1), 2, 3); - test(Iter(ia), Iter(ia+2), 0, 3); - test(Iter(ia), Iter(ia+2), 3, 6); - test(Iter(ia), Iter(ia+sa), 0, 21); - test(Iter(ia), Iter(ia+sa), 4, 25); -} - -template <typename T, typename Init> -void test_return_type() -{ - T *p = nullptr; - static_assert( std::is_same_v<Init, decltype(std::reduce(p, p, Init{}))> ); -} - -int main() -{ - test_return_type<char, int>(); - test_return_type<int, int>(); - test_return_type<int, unsigned long>(); - test_return_type<float, int>(); - test_return_type<short, float>(); - test_return_type<double, char>(); - test_return_type<char, double>(); - - test<input_iterator<const int*> >(); - test<forward_iterator<const int*> >(); - test<bidirectional_iterator<const int*> >(); - test<random_access_iterator<const int*> >(); - test<const int*>(); -} Removed: libcxx/trunk/test/std/numerics/numeric.ops/reduce/reduce_iter_iter_T_op.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/numerics/numeric.ops/reduce/reduce_iter_iter_T_op.pass.cpp?rev=305452&view=auto ============================================================================== --- libcxx/trunk/test/std/numerics/numeric.ops/reduce/reduce_iter_iter_T_op.pass.cpp (original) +++ libcxx/trunk/test/std/numerics/numeric.ops/reduce/reduce_iter_iter_T_op.pass.cpp (removed) @@ -1,74 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -// <numeric> -// UNSUPPORTED: c++98, c++03, c++11, c++14 - -// template<class InputIterator, class T, class BinaryOperation> -// T reduce(InputIterator first, InputIterator last, T init, BinaryOperation op); - -#include <numeric> -#include <cassert> - -#include "test_iterators.h" - -template <class Iter, class T, class Op> -void -test(Iter first, Iter last, T init, Op op, T x) -{ - static_assert( std::is_same_v<T, decltype(std::reduce(first, last, init, op))>, "" ); - assert(std::reduce(first, last, init, op) == x); -} - -template <class Iter> -void -test() -{ - int ia[] = {1, 2, 3, 4, 5, 6}; - unsigned sa = sizeof(ia) / sizeof(ia[0]); - test(Iter(ia), Iter(ia), 0, std::plus<>(), 0); - test(Iter(ia), Iter(ia), 1, std::multiplies<>(), 1); - test(Iter(ia), Iter(ia+1), 0, std::plus<>(), 1); - test(Iter(ia), Iter(ia+1), 2, std::multiplies<>(), 2); - test(Iter(ia), Iter(ia+2), 0, std::plus<>(), 3); - test(Iter(ia), Iter(ia+2), 3, std::multiplies<>(), 6); - test(Iter(ia), Iter(ia+sa), 0, std::plus<>(), 21); - test(Iter(ia), Iter(ia+sa), 4, std::multiplies<>(), 2880); -} - -template <typename T, typename Init> -void test_return_type() -{ - T *p = nullptr; - static_assert( std::is_same_v<Init, decltype(std::reduce(p, p, Init{}, std::plus<>()))>, "" ); -} - -int main() -{ - test_return_type<char, int>(); - test_return_type<int, int>(); - test_return_type<int, unsigned long>(); - test_return_type<float, int>(); - test_return_type<short, float>(); - test_return_type<double, char>(); - test_return_type<char, double>(); - - test<input_iterator<const int*> >(); - test<forward_iterator<const int*> >(); - test<bidirectional_iterator<const int*> >(); - test<random_access_iterator<const int*> >(); - test<const int*>(); - -// Make sure the math is done using the correct type - { - auto v = {1, 2, 3, 4, 5, 6, 7, 8}; - unsigned res = std::reduce(v.begin(), v.end(), 1U, std::multiplies<>()); - assert(res == 40320); // 8! will not fit into a char - } -} Removed: libcxx/trunk/test/std/numerics/numeric.ops/transform.exclusive.scan/transform_exclusive_scan_iter_iter_iter_init_bop_uop.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/numerics/numeric.ops/transform.exclusive.scan/transform_exclusive_scan_iter_iter_iter_init_bop_uop.pass.cpp?rev=305452&view=auto ============================================================================== --- libcxx/trunk/test/std/numerics/numeric.ops/transform.exclusive.scan/transform_exclusive_scan_iter_iter_iter_init_bop_uop.pass.cpp (original) +++ libcxx/trunk/test/std/numerics/numeric.ops/transform.exclusive.scan/transform_exclusive_scan_iter_iter_iter_init_bop_uop.pass.cpp (removed) @@ -1,160 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -// <numeric> -// UNSUPPORTED: c++98, c++03, c++11, c++14 - -// template<class InputIterator, class OutputIterator, class T, -// class BinaryOperation, class UnaryOperation> -// OutputIterator transform_exclusive_scan(InputIterator first, InputIterator last, -// OutputIterator result, T init, -// BinaryOperation binary_op, -// UnaryOperation unary_op); - - -#include <numeric> -#include <vector> -#include <cassert> -#include <iostream> - -#include "test_iterators.h" - -template <class _Tp = void> -struct identity : std::unary_function<_Tp, _Tp> -{ - constexpr const _Tp& operator()(const _Tp& __x) const { return __x;} -}; - -template <> -struct identity<void> -{ - template <class _Tp> - constexpr auto operator()(_Tp&& __x) const - _NOEXCEPT_(noexcept(_VSTD::forward<_Tp>(__x))) - -> decltype (_VSTD::forward<_Tp>(__x)) - { return _VSTD::forward<_Tp>(__x); } -}; - -template <class Iter1, class BOp, class UOp, class T, class Iter2> -void -test(Iter1 first, Iter1 last, BOp bop, UOp uop, T init, Iter2 rFirst, Iter2 rLast) -{ - std::vector<typename std::iterator_traits<Iter1>::value_type> v; -// Test not in-place - std::transform_exclusive_scan(first, last, std::back_inserter(v), init, bop, uop); - assert(std::equal(v.begin(), v.end(), rFirst, rLast)); - -// Test in-place - v.clear(); - v.assign(first, last); - std::transform_exclusive_scan(v.begin(), v.end(), v.begin(), init, bop, uop); - assert(std::equal(v.begin(), v.end(), rFirst, rLast)); -} - - -template <class Iter> -void -test() -{ - int ia[] = { 1, 3, 5, 7, 9}; - const int pResI0[] = { 0, 1, 4, 9, 16}; // with identity - const int mResI0[] = { 0, 0, 0, 0, 0}; - const int pResN0[] = { 0, -1, -4, -9, -16}; // with negate - const int mResN0[] = { 0, 0, 0, 0, 0}; - const int pResI2[] = { 2, 3, 6, 11, 18}; // with identity - const int mResI2[] = { 2, 2, 6, 30, 210}; - const int pResN2[] = { 2, 1, -2, -7, -14}; // with negate - const int mResN2[] = { 2, -2, 6, -30, 210}; - const unsigned sa = sizeof(ia) / sizeof(ia[0]); - static_assert(sa == sizeof(pResI0) / sizeof(pResI0[0])); // just to be sure - static_assert(sa == sizeof(mResI0) / sizeof(mResI0[0])); // just to be sure - static_assert(sa == sizeof(pResN0) / sizeof(pResN0[0])); // just to be sure - static_assert(sa == sizeof(mResN0) / sizeof(mResN0[0])); // just to be sure - static_assert(sa == sizeof(pResI2) / sizeof(pResI2[0])); // just to be sure - static_assert(sa == sizeof(mResI2) / sizeof(mResI2[0])); // just to be sure - static_assert(sa == sizeof(pResN2) / sizeof(pResN2[0])); // just to be sure - static_assert(sa == sizeof(mResN2) / sizeof(mResN2[0])); // just to be sure - - for (unsigned int i = 0; i < sa; ++i ) { - test(Iter(ia), Iter(ia + i), std::plus<>(), identity<>(), 0, pResI0, pResI0 + i); - test(Iter(ia), Iter(ia + i), std::multiplies<>(), identity<>(), 0, mResI0, mResI0 + i); - test(Iter(ia), Iter(ia + i), std::plus<>(), std::negate<>(), 0, pResN0, pResN0 + i); - test(Iter(ia), Iter(ia + i), std::multiplies<>(), std::negate<>(), 0, mResN0, mResN0 + i); - test(Iter(ia), Iter(ia + i), std::plus<>(), identity<>(), 2, pResI2, pResI2 + i); - test(Iter(ia), Iter(ia + i), std::multiplies<>(), identity<>(), 2, mResI2, mResI2 + i); - test(Iter(ia), Iter(ia + i), std::plus<>(), std::negate<>(), 2, pResN2, pResN2 + i); - test(Iter(ia), Iter(ia + i), std::multiplies<>(), std::negate<>(), 2, mResN2, mResN2 + i); - } -} - -int triangle(int n) { return n*(n+1)/2; } - -// Basic sanity -void basic_tests() -{ - { - std::vector<int> v(10); - std::fill(v.begin(), v.end(), 3); - std::transform_exclusive_scan(v.begin(), v.end(), v.begin(), 50, std::plus<>(), identity<>()); - for (size_t i = 0; i < v.size(); ++i) - assert(v[i] == 50 + (int) i * 3); - } - - { - std::vector<int> v(10); - std::iota(v.begin(), v.end(), 0); - std::transform_exclusive_scan(v.begin(), v.end(), v.begin(), 30, std::plus<>(), identity<>()); - for (size_t i = 0; i < v.size(); ++i) - assert(v[i] == 30 + triangle(i-1)); - } - - { - std::vector<int> v(10); - std::iota(v.begin(), v.end(), 1); - std::transform_exclusive_scan(v.begin(), v.end(), v.begin(), 40, std::plus<>(), identity<>()); - for (size_t i = 0; i < v.size(); ++i) - assert(v[i] == 40 + triangle(i)); - } - - { - std::vector<int> v, res; - std::transform_exclusive_scan(v.begin(), v.end(), std::back_inserter(res), 40, std::plus<>(), identity<>()); - assert(res.empty()); - } - -// Make sure that the calculations are done using the init typedef - { - std::vector<unsigned char> v(10); - std::iota(v.begin(), v.end(), 1); - std::vector<int> res; - std::transform_exclusive_scan(v.begin(), v.end(), std::back_inserter(res), 1, std::multiplies<>(), identity<>()); - - assert(res.size() == 10); - int j = 1; - assert(res[0] == 1); - for (size_t i = 1; i < res.size(); ++i) - { - j *= i; - assert(res[i] == j); - } - } -} - -int main() -{ - basic_tests(); - -// All the iterator categories - test<input_iterator <const int*> >(); - test<forward_iterator <const int*> >(); - test<bidirectional_iterator<const int*> >(); - test<random_access_iterator<const int*> >(); - test<const int*>(); - test< int*>(); -} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits