gslcpp
Modern-C++ Wrapper for GSL
|
Go to the documentation of this file.
10 #include "vec/v-iface.hpp"
11 #include "vec/v-stor.hpp"
16 using std::enable_if_t;
17 using std::is_const_v;
73 vector(
vector const &src): P(src.v()->size) { memcpy(*
this, src); }
84 template<size_t N>
struct sz_ok {
85 enum {
V= (N == S || N == 0 || S == 0) };
96 template<
typename, size_t>
98 typename= enable_if_t<
sz_ok<N>::V && !is_const_v<T>>>
110 template<
typename, size_t>
112 typename= enable_if_t<
sz_ok<N>::V>>
126 vector(T
const *d, size_t n, size_t s= 1): P(n) {
127 auto const cview= w_vector_view_array(d, s, n);
134 auto const cview= w_vector_view_array(d, 1, S);
140 vector(std::initializer_list<T> i): P(i.size()) {
141 auto const cview= w_vector_view_array(i.begin(), 1, i.size());
vector(v_iface< T const, N, V > const &src)
Copy data from vector of different type (different element-constness, different compile-time number o...
vector(T const *d, size_t n, size_t s=1)
Copy from standard (decayed) C-array.
vector(vector const &src)
Copy data from other vector of same type.
Generic v_stor is interface to storage with two key properties: (1) that size of storage is known sta...
vector(T const (&d)[S])
Copy from non-decayed C-array.
vector(vector &&)=default
Enable move-constructor in gsl::v_stor to work.
vector(v_iface< T, N, V > const &src)
Copy data from vector of different type (different compile-time number of elements or different stora...
vector(std::initializer_list< T > i)
Copy from initializer-list.
Interface for every kind of vector.
Interface to vector-storage not owned by interface.
vector & operator=(vector const &)=default
Enable explicitly defined copy-constructor in gsl::v_iface.
Constructor-type for vector whose storage is owned by instance of vector.
Struct defining whether size of other vector allow copying its data.
Namespace for C++-interface to GSL.