Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/bsd/libc++/dist/libcxx Import libc++ r195694, prima...



details:   https://anonhg.NetBSD.org/src/rev/a8cb26dc58f2
branches:  trunk
changeset: 791696:a8cb26dc58f2
user:      joerg <joerg%NetBSD.org@localhost>
date:      Thu Nov 28 13:45:08 2013 +0000

description:
Import libc++ r195694, primarily to avoid using a public identifier as
template argument that is overriden by macro in pkgsrc.

diffstat:

 external/bsd/libc++/dist/libcxx/include/CMakeLists.txt                                                                           |   16 +
 external/bsd/libc++/dist/libcxx/include/__config                                                                                 |   22 +-
 external/bsd/libc++/dist/libcxx/include/__locale                                                                                 |   12 +-
 external/bsd/libc++/dist/libcxx/include/__undef_min_max                                                                          |    6 +-
 external/bsd/libc++/dist/libcxx/include/experimental/dynarray                                                                    |  314 ++++
 external/bsd/libc++/dist/libcxx/include/experimental/optional                                                                    |  699 ++++++++++
 external/bsd/libc++/dist/libcxx/include/ext/__hash                                                                               |    2 +-
 external/bsd/libc++/dist/libcxx/include/iomanip                                                                                  |    4 +-
 external/bsd/libc++/dist/libcxx/include/locale                                                                                   |    2 +-
 external/bsd/libc++/dist/libcxx/include/memory                                                                                   |   39 +-
 external/bsd/libc++/dist/libcxx/include/type_traits                                                                              |    4 +-
 external/bsd/libc++/dist/libcxx/include/utility                                                                                  |    4 +-
 external/bsd/libc++/dist/libcxx/src/exception.cpp                                                                                |    8 +-
 external/bsd/libc++/dist/libcxx/src/locale.cpp                                                                                   |   26 +-
 external/bsd/libc++/dist/libcxx/src/new.cpp                                                                                      |    2 +-
 external/bsd/libc++/dist/libcxx/src/optional.cpp                                                                                 |    6 +-
 external/bsd/libc++/dist/libcxx/src/random.cpp                                                                                   |    2 +
 external/bsd/libc++/dist/libcxx/test/containers/sequences/dynarray/dynarray.cons/alloc.pass.cpp                                  |   10 +-
 external/bsd/libc++/dist/libcxx/test/containers/sequences/dynarray/dynarray.cons/default.pass.cpp                                |   14 +-
 external/bsd/libc++/dist/libcxx/test/containers/sequences/dynarray/dynarray.data/default.pass.cpp                                |    9 +-
 external/bsd/libc++/dist/libcxx/test/containers/sequences/dynarray/dynarray.mutate/default.pass.cpp                              |    5 +-
 external/bsd/libc++/dist/libcxx/test/containers/sequences/dynarray/dynarray.overview/at.pass.cpp                                 |   14 +-
 external/bsd/libc++/dist/libcxx/test/containers/sequences/dynarray/dynarray.overview/begin_end.pass.cpp                          |   10 +-
 external/bsd/libc++/dist/libcxx/test/containers/sequences/dynarray/dynarray.overview/capacity.pass.cpp                           |    8 +-
 external/bsd/libc++/dist/libcxx/test/containers/sequences/dynarray/dynarray.overview/front_back.pass.cpp                         |   10 +-
 external/bsd/libc++/dist/libcxx/test/containers/sequences/dynarray/dynarray.overview/indexing.pass.cpp                           |   10 +-
 external/bsd/libc++/dist/libcxx/test/containers/sequences/dynarray/dynarray.traits/default.pass.cpp                              |    6 +-
 external/bsd/libc++/dist/libcxx/test/containers/sequences/dynarray/dynarray.zero/default.pass.cpp                                |    5 +-
 external/bsd/libc++/dist/libcxx/test/input.output/iostream.format/quoted.manip/quoted.pass.cpp                                   |   12 +
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.bad_optional_access/char_pointer.pass.cpp                       |   10 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.bad_optional_access/copy_assign.pass.cpp                        |   14 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.bad_optional_access/copy_ctor.pass.cpp                          |   14 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.bad_optional_access/default.pass.cpp                            |   10 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.bad_optional_access/derive.pass.cpp                             |   12 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.bad_optional_access/string.pass.cpp                             |   10 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.comp_with_t/equal.pass.cpp                                      |    6 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.comp_with_t/less_than.pass.cpp                                  |    6 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.hash/hash.pass.cpp                                              |   25 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.inplace/in_place_t.pass.cpp                                     |   14 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.nullops/eqaul.pass.cpp                                          |   20 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.nullops/less_than.pass.cpp                                      |   20 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.nullopt/nullopt_t.pass.cpp                                      |   18 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.assign/assign_value.pass.cpp             |   28 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.assign/copy.pass.cpp                     |   24 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.assign/emplace.pass.cpp                  |   28 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.assign/emplace_initializer_list.pass.cpp |   12 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.assign/move.pass.cpp                     |   30 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.assign/nullopt_t.pass.cpp                |   26 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.ctor/const_T.pass.cpp                    |   20 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.ctor/copy.pass.cpp                       |   24 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.ctor/default.pass.cpp                    |   10 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp                 |   46 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.ctor/initializer_list.pass.cpp           |   32 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp                       |   26 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.ctor/nullopt_t.pass.cpp                  |   20 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.ctor/rvalue_T.pass.cpp                   |   20 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.dtor/dtor.pass.cpp                       |   12 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.observe/bool.pass.cpp                    |    8 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.observe/dereference.pass.cpp             |    8 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.observe/dereference_const.pass.cpp       |   10 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.observe/op_arrow.pass.cpp                |    8 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.observe/op_arrow_const.pass.cpp          |   12 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.observe/value.pass.cpp                   |   11 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.observe/value_const.fail.cpp             |    6 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.observe/value_const.pass.cpp             |   15 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.observe/value_or.pass.cpp                |   14 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.observe/value_or_const.pass.cpp          |   20 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.swap/swap.pass.cpp                       |   68 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional_const_void.fail.cpp                             |    6 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional_not_destructible.fail.cpp                       |    6 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional_not_noexcept_destructible.fail.cpp              |    6 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional_void.fail.cpp                                   |    6 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/types.pass.cpp                                           |   12 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.relops/equal.pass.cpp                                           |    6 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.relops/less_than.pass.cpp                                       |    6 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.specalg/make_optional.pass.cpp                                  |   17 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.specalg/swap.pass.cpp                                           |   68 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.syn/optional_const_in_place_t.fail.cpp                          |    8 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.syn/optional_const_lvalue_ref.fail.cpp                          |    6 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.syn/optional_const_nullopt_t.fail.cpp                           |    8 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.syn/optional_in_place_t.fail.cpp                                |    8 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.syn/optional_includes_initializer_list.pass.cpp                 |    4 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.syn/optional_lvalue_ref.fail.cpp                                |    6 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.syn/optional_nullopt_t.fail.cpp                                 |    8 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.syn/optional_rvalue_ref.fail.cpp                                |    6 +-
 external/bsd/libc++/dist/libcxx/test/utilities/optional/version.pass.cpp                                                         |    2 +-
 external/bsd/libc++/dist/libcxx/test/utilities/utility/pairs/pairs.pair/copy_ctor.pass.cpp                                       |    2 +
 87 files changed, 1681 insertions(+), 508 deletions(-)

diffs (truncated from 4822 to 300 lines):

diff -r b249659a99fe -r a8cb26dc58f2 external/bsd/libc++/dist/libcxx/include/CMakeLists.txt
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/external/bsd/libc++/dist/libcxx/include/CMakeLists.txt    Thu Nov 28 13:45:08 2013 +0000
@@ -0,0 +1,16 @@
+if (NOT LIBCXX_INSTALL_SUPPORT_HEADERS)
+  set(LIBCXX_SUPPORT_HEADER_PATTERN PATTERN "support" EXCLUDE)
+endif()
+
+file(COPY .
+  DESTINATION "${CMAKE_BINARY_DIR}/include/c++/v1"
+  FILES_MATCHING
+  PATTERN "*"
+  PATTERN "CMakeLists.txt" EXCLUDE
+  PATTERN ".svn" EXCLUDE
+  ${LIBCXX_SUPPORT_HEADER_PATTERN}
+  )
+
+install(DIRECTORY "${CMAKE_BINARY_DIR}/include/c++/v1/"
+  DESTINATION include/c++/v1/
+  )
diff -r b249659a99fe -r a8cb26dc58f2 external/bsd/libc++/dist/libcxx/include/__config
--- a/external/bsd/libc++/dist/libcxx/include/__config  Thu Nov 28 13:39:18 2013 +0000
+++ b/external/bsd/libc++/dist/libcxx/include/__config  Thu Nov 28 13:45:08 2013 +0000
@@ -174,7 +174,7 @@
 #endif
 
 #ifndef _LIBCPP_TYPE_VIS
-#  if __has_attribute(type_visibility)
+#  if __has_attribute(__type_visibility__)
 #    define _LIBCPP_TYPE_VIS __attribute__ ((__type_visibility__("default")))
 #  else
 #    define _LIBCPP_TYPE_VIS __attribute__ ((__visibility__("default")))
@@ -389,9 +389,7 @@
 #endif
 
 #if _GNUC_VER < 404
-#define _LIBCPP_HAS_NO_ADVANCED_SFINAE
 #define _LIBCPP_HAS_NO_DECLTYPE
-#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
 #define _LIBCPP_HAS_NO_DELETED_FUNCTIONS
 #define _LIBCPP_HAS_NO_UNICODE_CHARS
 #define _LIBCPP_HAS_NO_VARIADICS
@@ -402,6 +400,11 @@
 #define _LIBCPP_HAS_NO_NULLPTR
 #endif
 
+#if _GNUC_VER < 407
+#define _LIBCPP_HAS_NO_ADVANCED_SFINAE
+#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
+#endif
+
 #endif  // __GXX_EXPERIMENTAL_CXX0X__
 
 #define _LIBCPP_BEGIN_NAMESPACE_STD namespace std { namespace _LIBCPP_NAMESPACE {
@@ -454,7 +457,6 @@
 #define _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
 #define _LIBCPP_HAS_NO_NULLPTR
 #define _LIBCPP_HAS_NO_UNICODE_CHARS
-#define _LIBCPP_HAS_NO_STRONG_ENUMS
 #define _LIBCPP_HAS_IS_BASE_OF
 
 #if defined(_AIX)
@@ -514,7 +516,7 @@
 #define __has_feature(__x) 0
 #endif
 
-#if __has_feature(cxx_explicit_conversions)
+#if __has_feature(cxx_explicit_conversions) || defined(__IBMCPP__)
 #   define _LIBCPP_EXPLICIT explicit
 #else
 #   define _LIBCPP_EXPLICIT
@@ -567,6 +569,16 @@
 #define _LIBCPP_WCTYPE_IS_MASK
 #endif
 
+#if defined(__APPLE__)
+#ifndef _LIBCPP_TRIVIAL_PAIR_COPY_CTOR
+#  define _LIBCPP_TRIVIAL_PAIR_COPY_CTOR 0
+#endif
+#endif
+
+#ifndef _LIBCPP_TRIVIAL_PAIR_COPY_CTOR
+#  define _LIBCPP_TRIVIAL_PAIR_COPY_CTOR 1
+#endif
+
 #ifndef _LIBCPP_STD_VER
 #  if  __cplusplus <= 201103L
 #    define _LIBCPP_STD_VER 11
diff -r b249659a99fe -r a8cb26dc58f2 external/bsd/libc++/dist/libcxx/include/__locale
--- a/external/bsd/libc++/dist/libcxx/include/__locale  Thu Nov 28 13:39:18 2013 +0000
+++ b/external/bsd/libc++/dist/libcxx/include/__locale  Thu Nov 28 13:45:08 2013 +0000
@@ -23,9 +23,9 @@
 # include <support/win32/locale_win32.h>
 #elif _AIX
 # include <support/ibm/xlocale.h>
-#elif (defined(__GLIBC__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__sun__)) || defined(EMSCRIPTEN) || defined(__IBMCPP__)
+#elif (defined(__GLIBC__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__sun__)) || defined(__EMSCRIPTEN__) || defined(__IBMCPP__)
 # include <xlocale.h>
-#endif  // _WIN32 || __GLIBC__ || __APPLE__ || __FreeBSD__ || __sun__ || EMSCRIPTEN || __IBMCPP__
+#endif  // _WIN32 || __GLIBC__ || __APPLE__ || __FreeBSD__ || __sun__ || __EMSCRIPTEN__ || __IBMCPP__
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #pragma GCC system_header
@@ -341,12 +341,12 @@
     static const mask punct  = _PUNCT;
     static const mask xdigit = _HEX;
     static const mask blank  = _BLANK;
-#elif defined(__APPLE__) || defined(__FreeBSD__) || defined(EMSCRIPTEN) || defined(__NetBSD__)
+#elif defined(__APPLE__) || defined(__FreeBSD__) || defined(__EMSCRIPTEN__) || defined(__NetBSD__)
 #ifdef __APPLE__
     typedef __uint32_t mask;
 #elif defined(__FreeBSD__)
     typedef unsigned long mask;
-#elif defined(EMSCRIPTEN) ||  defined(__NetBSD__)
+#elif defined(__EMSCRIPTEN__) ||  defined(__NetBSD__)
     typedef unsigned short mask;
 #endif
     static const mask space  = _CTYPE_S;
@@ -375,7 +375,7 @@
     static const mask punct  = _ISPUNCT;
     static const mask xdigit = _ISXDIGIT;
     static const mask blank  = _ISBLANK;
-#else  // __GLIBC__ || _WIN32 || __APPLE__ || __FreeBSD__ || EMSCRIPTEN || __sun__
+#else  // __GLIBC__ || _WIN32 || __APPLE__ || __FreeBSD__ || __EMSCRIPTEN__ || __sun__
     typedef unsigned long mask;
     static const mask space  = 1<<0;
     static const mask print  = 1<<1;
@@ -598,7 +598,7 @@
 #endif
     _LIBCPP_ALWAYS_INLINE const mask* table() const  _NOEXCEPT {return __tab_;}
     static const mask* classic_table()  _NOEXCEPT;
-#if defined(__GLIBC__) || defined(EMSCRIPTEN)
+#if defined(__GLIBC__) || defined(__EMSCRIPTEN__)
     static const int* __classic_upper_table() _NOEXCEPT;
     static const int* __classic_lower_table() _NOEXCEPT;
 #endif
diff -r b249659a99fe -r a8cb26dc58f2 external/bsd/libc++/dist/libcxx/include/__undef_min_max
--- a/external/bsd/libc++/dist/libcxx/include/__undef_min_max   Thu Nov 28 13:39:18 2013 +0000
+++ b/external/bsd/libc++/dist/libcxx/include/__undef_min_max   Thu Nov 28 13:45:08 2013 +0000
@@ -10,7 +10,8 @@
 
 #ifdef min
 #if defined(_MSC_VER) && ! defined(__clang__)
-_LIBCPP_WARNING("macro min is incompatible with C++.  #undefing min")
+_LIBCPP_WARNING("macro min is incompatible with C++.  Try #define NOMINMAX "
+                "before any Windows header. #undefing min")
 #else
 #warning: macro min is incompatible with C++.  #undefing min
 #endif
@@ -19,7 +20,8 @@
 
 #ifdef max
 #if defined(_MSC_VER) && ! defined(__clang__)
-_LIBCPP_WARNING("macro max is incompatible with C++.  #undefing max")
+_LIBCPP_WARNING("macro max is incompatible with C++.  Try #define NOMINMAX "
+                "before any Windows header. #undefing max")
 #else
 #warning: macro max is incompatible with C++.  #undefing max
 #endif
diff -r b249659a99fe -r a8cb26dc58f2 external/bsd/libc++/dist/libcxx/include/experimental/dynarray
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/external/bsd/libc++/dist/libcxx/include/experimental/dynarray     Thu Nov 28 13:45:08 2013 +0000
@@ -0,0 +1,314 @@
+// -*- C++ -*-
+//===-------------------------- dynarray ----------------------------------===//
+//
+//                     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.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef _LIBCPP_DYNARRAY
+#define _LIBCPP_DYNARRAY
+
+#include <__config>
+#if _LIBCPP_STD_VER > 11
+
+/*
+    dynarray synopsis
+
+namespace std { namespace experimental {
+
+template< typename T >
+class dynarray
+{
+    // types:
+    typedef       T                               value_type;
+    typedef       T&                              reference;
+    typedef const T&                              const_reference;
+    typedef       T*                              pointer;
+    typedef const T*                              const_pointer;
+    typedef       implementation-defined          iterator;
+    typedef       implementation-defined          const_iterator;
+    typedef reverse_iterator<iterator>            reverse_iterator;
+    typedef reverse_iterator<const_iterator>      const_reverse_iterator;
+    typedef size_t                                size_type;
+    typedef ptrdiff_t                             difference_type;
+
+public:
+    // construct/copy/destroy:
+    explicit dynarray(size_type c);
+    template <typename Alloc>
+      dynarray(size_type c, const Alloc& alloc);
+    dynarray(size_type c, const T& v);
+    template <typename Alloc>
+      dynarray(size_type c, const T& v, const Alloc& alloc);
+    dynarray(const dynarray& d);
+    template <typename Alloc>
+      dynarray(const dynarray& d, const Alloc& alloc);
+    dynarray(initializer_list<T>);
+    template <typename Alloc>
+      dynarray(initializer_list<T>, const Alloc& alloc);
+
+    dynarray& operator=(const dynarray&) = delete;
+    ~dynarray();
+
+    // iterators:
+    iterator       begin()        noexcept;
+    const_iterator begin()  const noexcept;
+    const_iterator cbegin() const noexcept;
+    iterator       end()          noexcept;
+    const_iterator end()    const noexcept;
+    const_iterator cend()   const noexcept;
+
+    reverse_iterator       rbegin()        noexcept;
+    const_reverse_iterator rbegin()  const noexcept;
+    const_reverse_iterator crbegin() const noexcept;
+    reverse_iterator       rend()          noexcept;
+    const_reverse_iterator rend()    const noexcept;
+    const_reverse_iterator crend()   const noexcept;
+
+    // capacity:
+    size_type size()     const noexcept;
+    size_type max_size() const noexcept;
+    bool      empty()    const noexcept;
+
+    // element access:
+    reference       operator[](size_type n);
+    const_reference operator[](size_type n) const;
+
+    reference       front();
+    const_reference front() const;
+    reference       back();
+    const_reference back()  const;
+
+    const_reference at(size_type n) const;
+    reference       at(size_type n);
+
+    // data access:
+    T*       data()       noexcept;
+    const T* data() const noexcept;
+
+    // mutating member functions:
+    void fill(const T& v);
+};
+
+}}  // std::experimental
+
+*/
+
+#include <__functional_base>
+#include <iterator>
+#include <stdexcept>
+#include <initializer_list>
+#include <new>
+#include <algorithm>
+
+#if defined(_LIBCPP_NO_EXCEPTIONS)
+    #include <cassert>
+#endif
+
+#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
+#pragma GCC system_header
+#endif
+
+namespace std { namespace experimental { inline namespace __array_extensions_v1 {
+
+template <class _Tp>
+struct _LIBCPP_TYPE_VIS_ONLY dynarray
+{
+public:
+    // types:
+    typedef dynarray __self;
+    typedef _Tp                                   value_type;
+    typedef value_type&                           reference;
+    typedef const value_type&                     const_reference;
+    typedef value_type*                           iterator;
+    typedef const value_type*                     const_iterator;
+    typedef value_type*                           pointer;
+    typedef const value_type*                     const_pointer;
+    typedef size_t                                size_type;
+    typedef ptrdiff_t                             difference_type;
+    typedef std::reverse_iterator<iterator>       reverse_iterator;
+    typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
+
+private:
+    size_t                  __size_;
+    value_type *            __base_;



Home | Main Index | Thread Index | Old Index