diff --git a/Builds/VisualStudio2013/RippleD.vcxproj b/Builds/VisualStudio2013/RippleD.vcxproj
index 2a7b9ca05d..011eb96764 100755
--- a/Builds/VisualStudio2013/RippleD.vcxproj
+++ b/Builds/VisualStudio2013/RippleD.vcxproj
@@ -232,8 +232,6 @@
-
-
@@ -250,9 +248,6 @@
True
-
- True
-
diff --git a/Builds/VisualStudio2013/RippleD.vcxproj.filters b/Builds/VisualStudio2013/RippleD.vcxproj.filters
index 348038c4df..ee698dfa78 100644
--- a/Builds/VisualStudio2013/RippleD.vcxproj.filters
+++ b/Builds/VisualStudio2013/RippleD.vcxproj.filters
@@ -717,9 +717,6 @@
beast\container
-
- beast\container
-
beast\container
@@ -741,9 +738,6 @@
beast\container\tests
-
- beast\container\tests
-
beast\crypto
diff --git a/src/beast/beast/container/Container.unity.cpp b/src/beast/beast/container/Container.unity.cpp
index e4dda6ebd6..e5bbf33cec 100644
--- a/src/beast/beast/container/Container.unity.cpp
+++ b/src/beast/beast/container/Container.unity.cpp
@@ -22,4 +22,3 @@
#endif
#include
-#include
diff --git a/src/beast/beast/container/buffer_view.h b/src/beast/beast/container/buffer_view.h
deleted file mode 100644
index f6cc9f63bd..0000000000
--- a/src/beast/beast/container/buffer_view.h
+++ /dev/null
@@ -1,520 +0,0 @@
-//------------------------------------------------------------------------------
-/*
- This file is part of Beast: https://github.com/vinniefalco/Beast
- Copyright 2013, Vinnie Falco
-
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
- copyright notice and this permission notice appear in all copies.
-
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-*/
-//==============================================================================
-
-#ifndef BEAST_CONTAINER_BUFFER_VIEW_H_INCLUDED
-#define BEAST_CONTAINER_BUFFER_VIEW_H_INCLUDED
-
-#include
-
-#include
-#include //
-#include
-#include
-#include
-#include
-#include
-#include //
-
-namespace beast {
-
-namespace detail {
-
-template >::value>
-struct apply_const
-{
- typedef U type;
-};
-
-template
-struct apply_const
-{
- typedef const U type;
-};
-
-// is_contiguous is true if C is a contiguous container
-template
-struct is_contiguous
- : public std::false_type
-{
-};
-
-template
-struct is_contiguous
- : public is_contiguous
-{
-};
-
-template
-struct is_contiguous >
- : public std::true_type
-{
-};
-
-template
-struct is_contiguous >
- : public std::true_type
-{
-};
-
-template
-struct is_contiguous >
- : public std::true_type
-{
-};
-
-// True if T is const or U is not const
-template
-struct buffer_view_const_compatible : std::integral_constant ::value || ! std::is_const::value
->
-{
-};
-
-// True if T and U are the same or differ only in const, or
-// if T and U are equally sized integral types.
-template
-struct buffer_view_ptr_compatible : std::integral_constant , std::remove_const >::value) ||
- (std::is_integral ::value && std::is_integral ::value &&
- sizeof (U) == sizeof (T))
->
-{
-};
-
-// Determine if buffer_view is constructible from U*
-template
-struct buffer_view_convertible : std::integral_constant ::value &&
- buffer_view_ptr_compatible ::value
->
-{
-};
-
-// True if C is a container that can be used to construct a buffer_view
-template
-struct buffer_view_container_compatible : std::integral_constant ::value && buffer_view_convertible ::type>::value
->
-{
-};
-
-} // detail
-
-struct buffer_view_default_tag
-{
-};
-
-//------------------------------------------------------------------------------
-
-/** A view into a range of contiguous container elements.
-
- The size of the view is determined at the time of construction.
- This tries to emulate the interface of std::vector as closely as possible,
- with the constraint that the size of the container cannot be changed.
-
- @tparam T The underlying element type. If T is const, member functions
- which can modify elements are removed from the interface.
-
- @tparam Tag A type used to prevent two views with the same T from being
- comparable or assignable.
-*/
-template <
- class T,
- class Tag = buffer_view_default_tag
->
-class buffer_view
-{
-private:
- T* m_base;
- std::size_t m_size;
-
- static_assert (std::is_same >::value,
- "T may not be a reference type");
-
- static_assert (! std::is_same ::value,
- "T may not be void");
-
- static_assert (std::is_same ,
- std::remove_reference_t const>::value,
- "Expected std::add_const to produce T const");
-
- template
- void
- assign (Iter first, Iter last) noexcept
- {
- typedef typename std::iterator_traits ::value_type U;
-
- static_assert (detail::buffer_view_const_compatible ::value,
- "Cannot convert from 'U const' to 'T', "
- "conversion loses const qualifiers");
-
- static_assert (detail::buffer_view_ptr_compatible ::value,
- "Cannot convert from 'U*' to 'T*, "
- "types are incompatible");
-
- if (first == last)
- {
- m_base = nullptr;
- m_size = 0;
- }
- else
- {
- #if 0
- // fails on gcc
- m_base = reinterpret_cast (
- std::addressof (*first));
- #else
- m_base = reinterpret_cast (&*first);
- #endif
- m_size = std::distance (first, last);
- }
- }
-
-public:
- typedef T value_type;
- typedef std::size_t size_type;
- typedef std::ptrdiff_t difference_type;
- typedef T& reference;
- typedef T const& const_reference;
- typedef T* pointer;
- typedef T const* const_pointer;
- typedef T* iterator;
- typedef T const* const_iterator;
- typedef std::reverse_iterator reverse_iterator;
- typedef std::reverse_iterator const_reverse_iterator;
-
- // default construct
- buffer_view () noexcept
- : m_base (nullptr)
- , m_size (0)
- {
- }
-
- // copy construct
- template ::value>
- >
- buffer_view (buffer_view v) noexcept
- {
- assign (v.begin(), v.end());
- }
-
- // construct from container
- template ::value
- >
- >
- buffer_view (C& c) noexcept
- {
- assign (c.begin(), c.end());
- }
-
- // construct from pointer range
- template ::value>
- >
- buffer_view (U* first, U* last) noexcept
- {
- assign (first, last);
- }
-
- // construct from base and size
- template ::value>
- >
- buffer_view (U* u, std::size_t n) noexcept
- : m_base (u)
- , m_size (n)
- {
- }
-
- // assign from container
- template ::value
- >
- >
- buffer_view&
- operator= (C& c) noexcept
- {
- assign (c.begin(), c.end());
- return *this;
- }
-
- //
- // Element access
- //
-
- reference
- at (size_type pos)
- {
- if (! (pos < size()))
- throw std::out_of_range ("bad array index");
- return m_base [pos];
- }
-
- const_reference
- at (size_type pos) const
- {
- if (! (pos < size()))
- throw std::out_of_range ("bad array index");
- return m_base [pos];
- }
-
- reference
- operator[] (size_type pos) noexcept
- {
- return m_base [pos];
- }
-
- const_reference
- operator[] (size_type pos) const noexcept
- {
- return m_base [pos];
- }
-
- reference
- back() noexcept
- {
- return m_base [m_size - 1];
- }
-
- const_reference
- back() const noexcept
- {
- return m_base [m_size - 1];
- }
-
- reference
- front() noexcept
- {
- return *m_base;
- }
-
- const_reference
- front() const noexcept
- {
- return *m_base;
- }
-
- pointer
- data() noexcept
- {
- return m_base;
- }
-
- const_pointer
- data() const noexcept
- {
- return m_base;
- }
-
- //
- // Iterators
- //
-
- iterator
- begin() noexcept
- {
- return m_base;
- }
-
- const_iterator
- begin() const noexcept
- {
- return m_base;
- }
-
- const_iterator
- cbegin() const noexcept
- {
- return m_base;
- }
-
- iterator
- end() noexcept
- {
- return m_base + m_size;
- }
-
- const_iterator
- end() const noexcept
- {
- return m_base + m_size;
- }
-
- const_iterator
- cend() const noexcept
- {
- return m_base + m_size;
- }
-
- reverse_iterator
- rbegin() noexcept
- {
- return reverse_iterator (end());
- }
-
- const_reverse_iterator
- rbegin() const noexcept
- {
- return const_reverse_iterator (cend());
- }
-
- const_reverse_iterator
- crbegin() const noexcept
- {
- return const_reverse_iterator (cend());
- }
-
- reverse_iterator
- rend() noexcept
- {
- return reverse_iterator (begin());
- }
-
- const_reverse_iterator
- rend() const noexcept
- {
- return const_reverse_iterator (cbegin());
- }
-
- const_reverse_iterator
- crend() const noexcept
- {
- return const_reverse_iterator (cbegin());
- }
-
- //
- // Capacity
- //
-
- bool
- empty() const noexcept
- {
- return m_size == 0;
- }
-
- size_type
- size() const noexcept
- {
- return m_size;
- }
-
- size_type
- max_size() const noexcept
- {
- return size();
- }
-
- size_type
- capacity() const noexcept
- {
- return size();
- }
-
- //
- // Modifiers
- //
-
- template
- friend void swap (buffer_view & lhs,
- buffer_view & rhs) noexcept;
-};
-
-//------------------------------------------------------------------------------
-
-template
-inline
-bool
-operator== (buffer_view lhs, buffer_view rhs)
-{
- return std::equal (
- lhs.cbegin(), lhs.cend(), rhs.cbegin(), rhs.cend());
-}
-
-template
-inline
-bool
-operator!= (buffer_view lhs, buffer_view rhs)
-{
- return ! (lhs == rhs);
-}
-
-template
-inline
-bool
-operator< (buffer_view lhs, buffer_view rhs)
-{
- return std::lexicographical_compare (
- lhs.cbegin(), lhs.cend(), rhs.cbegin(), rhs.cend());
-}
-
-template
-inline
-bool
-operator>= (buffer_view lhs, buffer_view rhs)
-{
- return ! (lhs < rhs);
-}
-
-template
-inline
-bool
-operator> (buffer_view lhs, buffer_view rhs)
-{
- return rhs < lhs;
-}
-
-template
-inline
-bool
-operator<= (buffer_view lhs, buffer_view rhs)
-{
- return ! (rhs < lhs);
-}
-
-template
-inline
-void
-swap (buffer_view & lhs, buffer_view & rhs) noexcept
-{
- std::swap (lhs.m_base, rhs.m_base);
- std::swap (lhs.m_size, rhs.m_size);
-}
-
-//------------------------------------------------------------------------------
-
-template <
- class T,
- class Tag = buffer_view_default_tag
->
-using const_buffer_view = buffer_view <
- std::add_const_t , Tag>;
-
-}
-
-#endif
diff --git a/src/beast/beast/container/tests/buffer_view.test.cpp b/src/beast/beast/container/tests/buffer_view.test.cpp
deleted file mode 100644
index d61f276fb2..0000000000
--- a/src/beast/beast/container/tests/buffer_view.test.cpp
+++ /dev/null
@@ -1,320 +0,0 @@
-//------------------------------------------------------------------------------
-/*
- This file is part of Beast: https://github.com/vinniefalco/Beast
- Copyright 2013, Vinnie Falco
-
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
- copyright notice and this permission notice appear in all copies.
-
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-*/
-//==============================================================================
-
-#include
-
-#include
-
-#include //
-
-namespace beast {
-
-class buffer_view_test : public unit_test::suite
-{
-public:
- // Returns `true` if the iterator distance matches the size
- template
- static bool eq_dist (FwdIt first, FwdIt last, Size size)
- {
- auto const dist (std::distance (first, last));
-
- static_assert (std::is_signed ::value,
- "dist must be signed");
-
- if (dist < 0)
- return false;
-
- return static_cast (dist) == size;
- }
-
- // Check the contents of a buffer_view against the container
- template
- void check (C const& c, buffer_view v)
- {
- expect (! v.empty() || c.empty());
- expect (v.size() == c.size());
- expect (v.max_size() == v.size());
- expect (v.capacity() == v.size());
-
- expect (eq_dist (v.begin(), v.end(), v.size()));
- expect (eq_dist (v.cbegin(), v.cend(), v.size()));
- expect (eq_dist (v.rbegin(), v.rend(), v.size()));
- expect (eq_dist (v.crbegin(), v.crend(), v.size()));
-
- expect (std::equal (
- c.cbegin(), c.cend(), v.cbegin(), v.cend()));
-
- expect (std::equal (
- c.crbegin(), c.crend(), v.crbegin(), v.crend()));
-
- if (v.size() == c.size())
- {
- if (! v.empty())
- {
- expect (v.front() == c.front());
- expect (v.back() == c.back());
- }
-
- for (std::size_t i (0); i < v.size(); ++i)
- expect (v[i] == c[i]);
- }
- }
-
- //--------------------------------------------------------------------------
-
- // Call at() with an invalid index
- template
- void checkBadIndex (V& v,
- std::enable_if_t <
- std::is_const ::value>* = 0)
- {
- try
- {
- v.at(0);
- fail();
- }
- catch (std::out_of_range e)
- {
- pass();
- }
- catch (...)
- {
- fail();
- }
- }
-
- // Call at() with an invalid index
- template
- void checkBadIndex (V& v,
- std::enable_if_t <
- ! std::is_const ::value>* = 0)
- {
- try
- {
- v.at(0);
- fail();
- }
- catch (std::out_of_range e)
- {
- pass();
- }
- catch (...)
- {
- fail();
- }
-
- try
- {
- v.at(0) = 1;
- fail();
- }
- catch (std::out_of_range e)
- {
- pass();
- }
- catch (...)
- {
- fail();
- }
- }
-
- // Checks invariants for an empty buffer_view
- template
- void checkEmpty (V& v)
- {
- expect (v.empty());
- expect (v.size() == 0);
- expect (v.max_size() == v.size());
- expect (v.capacity() == v.size());
- expect (v.begin() == v.end());
- expect (v.cbegin() == v.cend());
- expect (v.begin() == v.cend());
- expect (v.rbegin() == v.rend());
- expect (v.crbegin() == v.rend());
-
- checkBadIndex (v);
- }
-
- // Test empty containers
- void testEmpty()
- {
- testcase ("empty");
-
- buffer_view v1;
- checkEmpty (v1);
-
- buffer_view v2;
- swap (v1, v2);
- checkEmpty (v1);
- checkEmpty (v2);
-
- buffer_view v3 (v2);
- checkEmpty (v3);
- }
-
- //--------------------------------------------------------------------------
-
- // Construct const views from a container
- template
- void testConstructConst (C const& c)
- {
- typedef buffer_view > V;
-
- {
- // construct from container
- V v (c);
- check (c, v);
-
- // construct from buffer_view
- V v2 (v);
- check (c, v2);
- }
-
- if (! c.empty())
- {
- {
- // construct from const pointer range
- V v (&c.front(), &c.back()+1);
- check (c, v);
-
- // construct from pointer and size
- V v2 (&c.front(), c.size());
- check (v, v2);
- }
-
- {
- // construct from non const pointer range
- C cp (c);
- V v (&cp.front(), &cp.back()+1);
- check (cp, v);
-
- // construct from pointer and size
- V v2 (&cp.front(), cp.size());
- check (v, v2);
-
- // construct from data and size
- V v3 (v2.data(), v2.size());
- check (c, v3);
- }
- }
- }
-
- // Construct view from a container
- template
- void testConstruct (C const& c)
- {
- static_assert (! std::is_const ::value,
- "Container value_type cannot be const");
-
- testConstructConst (c);
-
- typedef buffer_view V;
-
- C cp (c);
- V v (cp);
- check (cp, v);
-
- std::reverse (v.begin(), v.end());
- check (cp, v);
-
- expect (std::equal (v.rbegin(), v.rend(),
- c.begin(), c.end()));
- }
-
- void testConstruct()
- {
- testcase ("std::vector ");
- testConstruct (
- std::vector ({'h', 'e', 'l', 'l', 'o'}));
-
- testcase ("std::string ");
- testConstruct (
- std::basic_string ("hello"));
- }
-
- //--------------------------------------------------------------------------
-
- void testCoerce()
- {
- testcase ("coerce");
-
- std::string const s ("hello");
- const_buffer_view v (s);
-
- pass();
- }
-
- //--------------------------------------------------------------------------
-
- void testAssign()
- {
- testcase ("testAssign");
- std::vector v1({1, 2, 3});
- buffer_view r1(v1);
- std::vector v2({4, 5, 6, 7});
- buffer_view r2(v2);
- r1 = r2;
- expect (std::equal (r1.begin(), r1.end(), v2.begin(), v2.end()));
- }
-
- //--------------------------------------------------------------------------
-
- static_assert (std::is_constructible ,
- std::vector &>::value, "");
-
- static_assert (!std::is_constructible ,
- std::vector const&>::value, "");
-
- static_assert (std::is_constructible ,
- std::vector &>::value, "");
-
- static_assert (std::is_constructible ,
- std::vector const&>::value, "");
-
- static_assert (std::is_nothrow_default_constructible <
- buffer_view >::value, "");
-
- static_assert (std::is_nothrow_destructible <
- buffer_view >::value, "");
-
- static_assert (std::is_nothrow_copy_constructible <
- buffer_view >::value, "");
-
- static_assert (std::is_nothrow_copy_assignable <
- buffer_view>::value, "");
-
- static_assert (std::is_nothrow_move_constructible <
- buffer_view >::value, "");
-
- static_assert (std::is_nothrow_move_assignable <
- buffer_view >::value, "");
-
- void run()
- {
- testEmpty();
- testConstruct();
- testCoerce();
- testAssign();
- }
-};
-
-BEAST_DEFINE_TESTSUITE(buffer_view,container,beast);
-
-}