update boost
This commit is contained in:
@@ -6,24 +6,39 @@
|
||||
//
|
||||
|
||||
#ifndef BOOST_MP_DETAIL_DYNAMIC_ARRAY_HPP
|
||||
#define BOOST_MP_DETAIL_DYNAMIC_ARRAY_HPP
|
||||
#define BOOST_MP_DETAIL_DYNAMIC_ARRAY_HPP
|
||||
|
||||
#include <vector>
|
||||
#include <boost/multiprecision/detail/rebind.hpp>
|
||||
#include <algorithm>
|
||||
#include <cstddef>
|
||||
#include <cstdint>
|
||||
#include <vector>
|
||||
|
||||
namespace boost { namespace multiprecision { namespace backends { namespace detail
|
||||
{
|
||||
template <class value_type, const boost::uint32_t elem_number, class my_allocator>
|
||||
struct dynamic_array : public std::vector<value_type, typename rebind<value_type, my_allocator>::type>
|
||||
{
|
||||
dynamic_array() :
|
||||
std::vector<value_type, typename rebind<value_type, my_allocator>::type>(static_cast<typename std::vector<value_type, typename rebind<value_type, my_allocator>::type>::size_type>(elem_number), static_cast<value_type>(0))
|
||||
{
|
||||
}
|
||||
#include <boost/multiprecision/detail/rebind.hpp>
|
||||
|
||||
value_type* data() { return &(*(this->begin())); }
|
||||
const value_type* data() const { return &(*(this->begin())); }
|
||||
};
|
||||
} } } } // namespace boost::multiprecision::backends::detail
|
||||
namespace boost { namespace multiprecision { namespace backends { namespace detail {
|
||||
template <class ValueType, const std::uint32_t ElemNumber, class my_allocator>
|
||||
struct dynamic_array : public std::vector<ValueType, typename rebind<ValueType, my_allocator>::type>
|
||||
{
|
||||
private:
|
||||
using base_class_type = std::vector<ValueType, typename rebind<ValueType, my_allocator>::type>;
|
||||
|
||||
public:
|
||||
dynamic_array()
|
||||
: base_class_type(static_cast<typename base_class_type::size_type>(ElemNumber),
|
||||
static_cast<typename base_class_type::value_type>(0u)) { }
|
||||
|
||||
dynamic_array(std::initializer_list<std::uint32_t> lst)
|
||||
: base_class_type(static_cast<typename base_class_type::size_type>(ElemNumber),
|
||||
static_cast<typename base_class_type::value_type>(0u))
|
||||
{
|
||||
std::copy(lst.begin(),
|
||||
lst.begin() + (std::min)(std::size_t(lst.size()), std::size_t(ElemNumber)),
|
||||
data());
|
||||
}
|
||||
|
||||
typename base_class_type::value_type* data() { return &(*(this->begin())); }
|
||||
const typename base_class_type::value_type* data() const { return &(*(this->begin())); }
|
||||
};
|
||||
}}}} // namespace boost::multiprecision::backends::detail
|
||||
|
||||
#endif // BOOST_MP_DETAIL_DYNAMIC_ARRAY_HPP
|
||||
|
||||
Reference in New Issue
Block a user