utility (identity, [...]): Add.
2007-07-10 Paolo Carlini <pcarlini@suse.de> * include/std/utility (identity, move, forward): Add. * testsuite/20_util/move/requirements/explicit_instantiation.cc: New. * testsuite/20_util/move/1.cc: New. * testsuite/20_util/identity/value.cc: New. * testsuite/20_util/identity/requirements/typedefs.cc: New. * testsuite/20_util/identity/requirements/explicit_instantiation.cc: New. * testsuite/20_util/forward/requirements/explicit_instantiation.cc: New. * testsuite/20_util/forward/1.cc: New. * testsuite/20_util/forward/1_neg.cc: New. From-SVN: r126524
This commit is contained in:
parent
558be301bd
commit
f425a30a1e
@ -1,6 +1,7 @@
|
|||||||
// <utility> -*- C++ -*-
|
// <utility> -*- C++ -*-
|
||||||
|
|
||||||
// Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc.
|
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
|
||||||
|
// Free Software Foundation, Inc.
|
||||||
//
|
//
|
||||||
// This file is part of the GNU ISO C++ Library. This library is free
|
// 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
|
// software; you can redistribute it and/or modify it under the
|
||||||
@ -83,6 +84,29 @@
|
|||||||
# undef _GLIBCXX_BEGIN_NAMESPACE_TR1
|
# undef _GLIBCXX_BEGIN_NAMESPACE_TR1
|
||||||
# undef _GLIBCXX_INCLUDE_AS_CXX0X
|
# undef _GLIBCXX_INCLUDE_AS_CXX0X
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
#include <type_traits>
|
||||||
|
|
||||||
|
namespace std
|
||||||
|
{
|
||||||
|
// 20.2.2, forward/move
|
||||||
|
template<typename _Tp>
|
||||||
|
struct identity
|
||||||
|
{
|
||||||
|
typedef _Tp type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<typename _Tp>
|
||||||
|
inline _Tp&&
|
||||||
|
forward(typename std::identity<_Tp>::type&& __t)
|
||||||
|
{ return __t; }
|
||||||
|
|
||||||
|
template<typename _Tp>
|
||||||
|
inline typename std::remove_reference<_Tp>::type&&
|
||||||
|
move(_Tp&& __t)
|
||||||
|
{ return __t; }
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* _GLIBCXX_UTILITY */
|
#endif /* _GLIBCXX_UTILITY */
|
||||||
|
Loading…
Reference in New Issue
Block a user