summaryrefslogtreecommitdiff
path: root/boost/numeric/ublas/storage.hpp
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2015-04-08 03:09:47 +0000
committer <>2015-05-05 14:37:32 +0000
commitf2541bb90af059680aa7036f315f052175999355 (patch)
treea5b214744b256f07e1dc2bd7273035a7808c659f /boost/numeric/ublas/storage.hpp
parented232fdd34968697a68783b3195b1da4226915b5 (diff)
downloadboost-tarball-master.tar.gz
Imported from /home/lorry/working-area/delta_boost-tarball/boost_1_58_0.tar.bz2.HEADboost_1_58_0master
Diffstat (limited to 'boost/numeric/ublas/storage.hpp')
-rw-r--r--boost/numeric/ublas/storage.hpp36
1 files changed, 33 insertions, 3 deletions
diff --git a/boost/numeric/ublas/storage.hpp b/boost/numeric/ublas/storage.hpp
index 9dfaaee07..8821309dd 100644
--- a/boost/numeric/ublas/storage.hpp
+++ b/boost/numeric/ublas/storage.hpp
@@ -370,7 +370,7 @@ namespace boost { namespace numeric { namespace ublas {
// Random Access Container
BOOST_UBLAS_INLINE
size_type max_size () const {
- return ALLOC ().max_size();
+ return N;
}
BOOST_UBLAS_INLINE
@@ -537,6 +537,10 @@ namespace boost { namespace numeric { namespace ublas {
BOOST_UBLAS_INLINE
array_adaptor (size_type size, pointer data):
size_ (size), own_ (false), data_ (data) {}
+
+ template <size_t N>
+ BOOST_UBLAS_INLINE array_adaptor (T (&data)[N]):
+ size_ (N), own_ (false), data_ (data) {}
BOOST_UBLAS_INLINE
array_adaptor (const array_adaptor &a):
storage_array<self_type> (),
@@ -602,6 +606,16 @@ namespace boost { namespace numeric { namespace ublas {
resize_internal (size, data, init, true);
}
+ template <size_t N>
+ BOOST_UBLAS_INLINE void resize (T (&data)[N]) {
+ resize_internal (N, data, value_type (), false);
+ }
+
+ template <size_t N>
+ BOOST_UBLAS_INLINE void resize (T (&data)[N], value_type init) {
+ resize_internal (N, data, init, true);
+ }
+
BOOST_UBLAS_INLINE
size_type size () const {
return size_;
@@ -734,7 +748,7 @@ namespace boost { namespace numeric { namespace ublas {
typedef TT *argument_type;
BOOST_UBLAS_INLINE
- result_type operator () (argument_type x) {}
+ result_type operator () (argument_type /* x */) {}
};
public:
@@ -763,6 +777,10 @@ namespace boost { namespace numeric { namespace ublas {
BOOST_UBLAS_INLINE
shallow_array_adaptor (size_type size, pointer data):
size_ (size), own_ (false), data_ (data, leaker<value_type> ()) {}
+ BOOST_UBLAS_INLINE
+ template <size_t N>
+ shallow_array_adaptor (T (&data)[N]):
+ size_ (N), own_ (false), data_ (data, leaker<value_type> ()) {}
BOOST_UBLAS_INLINE
shallow_array_adaptor (const shallow_array_adaptor &a):
@@ -784,6 +802,7 @@ namespace boost { namespace numeric { namespace ublas {
std::fill (data.get () + (std::min) (size, size_), data.get () + size, init);
}
size_ = size;
+ own_ = true;
data_ = data;
}
}
@@ -794,7 +813,8 @@ namespace boost { namespace numeric { namespace ublas {
std::fill (data + (std::min) (size, size_), data + size, init);
}
size_ = size;
- data_ = data;
+ own_ = false;
+ data_.reset(data, leaker<value_type> ());
}
public:
BOOST_UBLAS_INLINE
@@ -813,6 +833,16 @@ namespace boost { namespace numeric { namespace ublas {
void resize (size_type size, pointer data, value_type init) {
resize_internal (size, data, init, true);
}
+ BOOST_UBLAS_INLINE
+ template <size_t N>
+ void resize (T (&data)[N]) {
+ resize_internal (N, data, value_type (), false);
+ }
+ BOOST_UBLAS_INLINE
+ template <size_t N>
+ void resize (T (&data)[N], value_type init) {
+ resize_internal (N, data, init, true);
+ }
BOOST_UBLAS_INLINE
size_type size () const {