1 /////////////////////////////////////////////////////////////////////////////// 2 // Copyright 2012 John Maddock. 3 // Copyright Christopher Kormanyos 2013. Distributed under the Boost 4 // Software License, Version 1.0. (See accompanying file 5 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 // 7 8 #ifndef BOOST_MP_DETAIL_DYNAMIC_ARRAY_HPP 9 #define BOOST_MP_DETAIL_DYNAMIC_ARRAY_HPP 10 11 #include <vector> 12 #include <boost/multiprecision/detail/rebind.hpp> 13 14 namespace boost { namespace multiprecision { namespace backends { namespace detail 15 { 16 template <class value_type, const boost::uint32_t elem_number, class my_allocator> 17 struct dynamic_array : public std::vector<value_type, typename rebind<value_type, my_allocator>::type> 18 { dynamic_arrayboost::multiprecision::backends::detail::dynamic_array19 dynamic_array() : 20 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)) 21 { 22 } 23 databoost::multiprecision::backends::detail::dynamic_array24 value_type* data() { return &(*(this->begin())); } databoost::multiprecision::backends::detail::dynamic_array25 const value_type* data() const { return &(*(this->begin())); } 26 }; 27 } } } } // namespace boost::multiprecision::backends::detail 28 29 #endif // BOOST_MP_DETAIL_DYNAMIC_ARRAY_HPP 30