summaryrefslogtreecommitdiffstats
path: root/WebKit/android/stlport/stl/_move_construct_fwk.h
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2009-12-22 16:28:44 +0000
committerSteve Block <steveblock@google.com>2009-12-22 21:27:00 +0000
commit22234bcffc603f2c467c02028143ffcb4ffccc09 (patch)
tree4889b07463a862041d2cf3d15924ffa244145710 /WebKit/android/stlport/stl/_move_construct_fwk.h
parent3564cd0fbfa8c6c1de224aca4c7bd0dd92f5161d (diff)
downloadexternal_webkit-22234bcffc603f2c467c02028143ffcb4ffccc09.zip
external_webkit-22234bcffc603f2c467c02028143ffcb4ffccc09.tar.gz
external_webkit-22234bcffc603f2c467c02028143ffcb4ffccc09.tar.bz2
Move STLPort to external/stlport.
Change-Id: I9cea43f9e1f98cefa654c5661dc7faa7f939068d
Diffstat (limited to 'WebKit/android/stlport/stl/_move_construct_fwk.h')
-rw-r--r--WebKit/android/stlport/stl/_move_construct_fwk.h160
1 files changed, 0 insertions, 160 deletions
diff --git a/WebKit/android/stlport/stl/_move_construct_fwk.h b/WebKit/android/stlport/stl/_move_construct_fwk.h
deleted file mode 100644
index 5f65a9d..0000000
--- a/WebKit/android/stlport/stl/_move_construct_fwk.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- *
- * Copyright (c) 2003
- * François Dumont
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_MOVE_CONSTRUCT_FWK_H
-#define _STLP_MOVE_CONSTRUCT_FWK_H
-
-#ifndef _STLP_TYPE_TRAITS_H
-# include <stl/type_traits.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-/*************************************************************
- * Move constructor framework
- *************************************************************/
-
-/*************************************************************
- *Partial move:
- *The source HAS to be a valid instance after the move!
- *************************************************************/
-template <class _Tp>
-class __move_source {
-public:
- explicit __move_source (_Tp &_src) : _M_data(_src)
- {}
-
- _Tp& get() const
- { return _M_data; }
-private:
- _Tp &_M_data;
-
- //We explicitely forbid assignment to avoid warning:
- typedef __move_source<_Tp> _Self;
- _Self& operator = (_Self const&);
-};
-
-//Class used to signal move constructor support, implementation and type.
-template <class _Tp>
-struct __move_traits {
- /*
- * implemented tells if a the special move constructor has to be called or the classic
- * copy constructor is just fine. Most of the time the copy constructor is fine only
- * if the following info is true.
- */
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && \
- !defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && \
- !defined (_STLP_NO_MOVE_SEMANTIC)
- typedef typename _IsSTLportClass<_Tp>::_Ret implemented;
-#else
- typedef __false_type implemented;
-#endif
- /*
- * complete tells if the move is complete or partial, that is to say, does the source
- * needs to be destroyed once it has been moved.
- */
- typedef typename __type_traits<_Tp>::has_trivial_destructor complete;
-};
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
-typedef __true_type __stlp_movable;
-#else
-typedef __false_type __stlp_movable;
-#endif
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-/*
- * This struct should never be used if the user has not explicitely stipulated
- * that its class support the full move concept. To check that the return type
- * in such a case will be __invalid_source<_Tp> to generate a compile error
- * revealing the configuration problem.
- */
-template <class _Tp>
-struct _MoveSourceTraits {
- typedef typename __move_traits<_Tp>::implemented _MvImpRet;
-#if defined (__BORLANDC__)
- typedef typename __selectT<_MvImpRet,
-#else
- enum {_MvImp = __type2bool<_MvImpRet>::_Ret};
- typedef typename __select<_MvImp,
-#endif
- __move_source<_Tp>,
- _Tp const&>::_Ret _Type;
-};
-
-//The helper function
-template <class _Tp>
-inline _STLP_TYPENAME_ON_RETURN_TYPE _MoveSourceTraits<_Tp>::_Type
-_AsMoveSource (_Tp &src) {
- typedef typename _MoveSourceTraits<_Tp>::_Type _SrcType;
- return _SrcType(src);
-}
-
-//Helper structs used for many class.
-template <class _Tp>
-struct __move_traits_aux {
- typedef typename __move_traits<_Tp>::implemented implemented;
- typedef typename __move_traits<_Tp>::complete complete;
-};
-
-template <class _Tp1, class _Tp2>
-struct __move_traits_aux2 {
- typedef __move_traits<_Tp1> _MoveTraits1;
- typedef __move_traits<_Tp2> _MoveTraits2;
-
- typedef typename _Lor2<typename _MoveTraits1::implemented,
- typename _MoveTraits2::implemented>::_Ret implemented;
- typedef typename _Land2<typename _MoveTraits1::complete,
- typename _MoveTraits2::complete>::_Ret complete;
-};
-
-/*
- * Most of the time a class implement a move constructor but its use depends
- * on a third party, this is what the following struct are for.
- */
-template <class _Tp>
-struct __move_traits_help {
- typedef __true_type implemented;
- typedef typename __move_traits<_Tp>::complete complete;
-};
-
-template <class _Tp1, class _Tp2>
-struct __move_traits_help1 {
- typedef __move_traits<_Tp1> _MoveTraits1;
- typedef __move_traits<_Tp2> _MoveTraits2;
-
- typedef typename _Lor2<typename _MoveTraits1::implemented,
- typename _MoveTraits2::implemented>::_Ret implemented;
- typedef typename _Land2<typename _MoveTraits1::complete,
- typename _MoveTraits2::complete>::_Ret complete;
-};
-
-template <class _Tp1, class _Tp2>
-struct __move_traits_help2 {
- typedef __move_traits<_Tp1> _MoveTraits1;
- typedef __move_traits<_Tp2> _MoveTraits2;
-
- typedef __stlp_movable implemented;
- typedef typename _Land2<typename _MoveTraits1::complete,
- typename _MoveTraits2::complete>::_Ret complete;
-};
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_MOVE_CONSTRUCT_FWK_H */