| Index: gcc/libstdc++-v3/testsuite/util/testsuite_rvalref.h
|
| diff --git a/gcc/libstdc++-v3/testsuite/util/testsuite_rvalref.h b/gcc/libstdc++-v3/testsuite/util/testsuite_rvalref.h
|
| deleted file mode 100644
|
| index 4e2f59c48f4dbd3aea2b058664d06ed65ee1c979..0000000000000000000000000000000000000000
|
| --- a/gcc/libstdc++-v3/testsuite/util/testsuite_rvalref.h
|
| +++ /dev/null
|
| @@ -1,188 +0,0 @@
|
| -// -*- C++ -*-
|
| -// Testing utilities for the rvalue reference.
|
| -//
|
| -// Copyright (C) 2005, 2007, 2009 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/>.
|
| -//
|
| -
|
| -#ifndef _GLIBCXX_TESTSUITE_RVALREF_H
|
| -#define _GLIBCXX_TESTSUITE_RVALREF_H 1
|
| -
|
| -#include <testsuite_hooks.h>
|
| -
|
| -namespace __gnu_test
|
| -{
|
| -
|
| - // This class is designed to test libstdc++'s template-based rvalue
|
| - // reference support. It should fail at compile-time if there is an attempt
|
| - // to copy it (although see note just below).
|
| - class rvalstruct
|
| - {
|
| - bool
|
| - operator=(const rvalstruct&);
|
| -
|
| -// Normally we don't define a copy constructor, as any use of it would
|
| -// show an inefficency. In some cases we know it will be aliased away
|
| -// by the compiler, but it still insists it is defined, so we provide
|
| -// a way of making it public but not giving a body, so any usage would
|
| -// instead fail at link-time.
|
| -#ifdef _GLIBCXX_TESTSUITE_ALLOW_RVALREF_ALIASING
|
| - public:
|
| - rvalstruct(const rvalstruct&);
|
| -#else
|
| - rvalstruct(const rvalstruct&);
|
| -
|
| - public:
|
| -#endif
|
| - int val;
|
| - bool valid;
|
| -
|
| - rvalstruct() : valid(false)
|
| - { }
|
| -
|
| - rvalstruct(int inval) : val(inval), valid(true)
|
| - { }
|
| -
|
| - rvalstruct&
|
| - operator=(int newval)
|
| - {
|
| - VERIFY(valid == false);
|
| - val = newval;
|
| - valid = true;
|
| - return *this;
|
| - }
|
| -
|
| - rvalstruct(rvalstruct&& in)
|
| - {
|
| - VERIFY(in.valid == true);
|
| - val = in.val;
|
| - in.valid = false;
|
| - valid = true;
|
| - }
|
| -
|
| - rvalstruct&
|
| - operator=(rvalstruct&& in)
|
| - {
|
| - VERIFY(in.valid == true);
|
| - val = in.val;
|
| - in.valid = false;
|
| - valid = true;
|
| - return *this;
|
| - }
|
| - };
|
| -
|
| - bool
|
| - operator==(const rvalstruct& lhs, const rvalstruct& rhs)
|
| - { return lhs.val == rhs.val; }
|
| -
|
| - bool
|
| - operator<(const rvalstruct& lhs, const rvalstruct& rhs)
|
| - { return lhs.val < rhs.val; }
|
| -
|
| - void
|
| - swap(rvalstruct& lhs, rvalstruct& rhs)
|
| - {
|
| - VERIFY(lhs.valid && rhs.valid);
|
| - int temp = lhs.val;
|
| - lhs.val = rhs.val;
|
| - rhs.val = temp;
|
| - }
|
| -
|
| - // This is a moveable class which copies how many times it is copied.
|
| - // This is mainly of use in the containers, where the an element inserted
|
| - // into a container has to be copied once to get there, but we want to check
|
| - // nothing else is copied.
|
| - struct copycounter
|
| - {
|
| - static int copycount;
|
| - int val;
|
| - bool valid;
|
| -
|
| - copycounter() : val(0), valid(true)
|
| - { }
|
| -
|
| - copycounter(int inval) : val(inval), valid(true)
|
| - { }
|
| -
|
| - copycounter(const copycounter& in) : val(in.val), valid(true)
|
| - {
|
| - VERIFY(in.valid == true);
|
| - ++copycount;
|
| - }
|
| -
|
| - copycounter(copycounter&& in)
|
| - {
|
| - VERIFY(in.valid == true);
|
| - val = in.val;
|
| - in.valid = false;
|
| - valid = true;
|
| - }
|
| -
|
| - copycounter&
|
| - operator=(int newval)
|
| - {
|
| - val = newval;
|
| - valid = true;
|
| - return *this;
|
| - }
|
| -
|
| - bool
|
| - operator=(const copycounter& in)
|
| - {
|
| - VERIFY(in.valid == true);
|
| - ++copycount;
|
| - val = in.val;
|
| - valid = true;
|
| - return true;
|
| - }
|
| -
|
| - copycounter&
|
| - operator=(copycounter&& in)
|
| - {
|
| - VERIFY(in.valid == true);
|
| - val = in.val;
|
| - in.valid = false;
|
| - valid = true;
|
| - return *this;
|
| - }
|
| -
|
| - ~copycounter()
|
| - { valid = false; }
|
| - };
|
| -
|
| - int copycounter::copycount = 0;
|
| -
|
| - bool
|
| - operator==(const copycounter& lhs, const copycounter& rhs)
|
| - { return lhs.val == rhs.val; }
|
| -
|
| - bool
|
| - operator<(const copycounter& lhs, const copycounter& rhs)
|
| - { return lhs.val < rhs.val; }
|
| -
|
| - void
|
| - swap(copycounter& lhs, copycounter& rhs)
|
| - {
|
| - VERIFY(lhs.valid && rhs.valid);
|
| - int temp = lhs.val;
|
| - lhs.val = rhs.val;
|
| - rhs.val = temp;
|
| - }
|
| -
|
| -} // namespace __gnu_test
|
| -
|
| -#endif // _GLIBCXX_TESTSUITE_TR1_H
|
|
|