f38716953d
2010-12-07 François Dumont <francois.cppdevs@free.fr> * include/bits/stl_iterator.h: Add move_iterator operators overloads to make it robust to template abuses. * testsuite/util/testsuite_greedy_ops.h: New. * testsuite/23_containers/vector/types/1.cc: Use latter. * testsuite/23_containers/deque/types/1.cc: Likewise. * testsuite/24_iterators/move_iterator/greedy_ops.cc: New. * testsuite/24_iterators/normal_iterator/greedy_ops.cc: New. * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: New. * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-error line numbers. From-SVN: r167580
59 lines
1.4 KiB
C++
59 lines
1.4 KiB
C++
// Copyright (C) 2010 Free Software Foundation, Inc.
|
|
//
|
|
// This file is part of the GNU ISO C++ Library. This library is free
|
|
// software; you can redistribute it and/or modify it under the
|
|
// terms of the GNU General Public License as published by the
|
|
// Free Software Foundation; either version 3, or (at your option)
|
|
// any later version.
|
|
|
|
// This library is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
|
|
// You should have received a copy of the GNU General Public License along
|
|
// with this library; see the file COPYING3. If not see
|
|
// <http://www.gnu.org/licenses/>.
|
|
|
|
namespace greedy_ops
|
|
{
|
|
struct X
|
|
{ };
|
|
|
|
template<typename T>
|
|
X operator==(T, T)
|
|
{ return X(); }
|
|
|
|
template<typename T>
|
|
X operator!=(T, T)
|
|
{ return X(); }
|
|
|
|
template<typename T>
|
|
X operator<(T, T)
|
|
{ return X(); }
|
|
|
|
template<typename T>
|
|
X operator<=(T, T)
|
|
{ return X(); }
|
|
|
|
template<typename T>
|
|
X operator>(T, T)
|
|
{ return X(); }
|
|
|
|
template<typename T>
|
|
X operator>=(T, T)
|
|
{ return X(); }
|
|
|
|
template<typename T>
|
|
X operator-(T, T)
|
|
{ return X(); }
|
|
/*
|
|
template<typename T>
|
|
T operator+(std::size_t, T)
|
|
{ return T(); }
|
|
*/
|
|
template<typename T>
|
|
T operator+(T, std::size_t)
|
|
{ return T(); }
|
|
}
|