version 2.2.1
std::initializer_list supports for vector and dequeue
This commit is contained in:
@@ -3,7 +3,7 @@ cmake_policy(SET CMP0017 NEW) # need include() with .cmake
|
|||||||
project(pip)
|
project(pip)
|
||||||
set(_PIP_MAJOR 2)
|
set(_PIP_MAJOR 2)
|
||||||
set(_PIP_MINOR 2)
|
set(_PIP_MINOR 2)
|
||||||
set(_PIP_REVISION 0)
|
set(_PIP_REVISION 1)
|
||||||
set(_PIP_SUFFIX _alpha)
|
set(_PIP_SUFFIX _alpha)
|
||||||
set(_PIP_COMPANY SHS)
|
set(_PIP_COMPANY SHS)
|
||||||
set(_PIP_DOMAIN org.SHS)
|
set(_PIP_DOMAIN org.SHS)
|
||||||
|
|||||||
@@ -49,6 +49,9 @@ PIVector<char> vec(4u, 'p');
|
|||||||
piForeachC (char i, vec)
|
piForeachC (char i, vec)
|
||||||
cout << i << ", ";
|
cout << i << ", ";
|
||||||
// p, p, p, p,
|
// p, p, p, p,
|
||||||
|
|
||||||
|
piCout << PIVector<int>({1, 2, 3});
|
||||||
|
// 1, 2, 3
|
||||||
//! [PIVector::PIVector]
|
//! [PIVector::PIVector]
|
||||||
//! [PIVector::at_c]
|
//! [PIVector::at_c]
|
||||||
PIVector<int> vec;
|
PIVector<int> vec;
|
||||||
|
|||||||
@@ -32,6 +32,10 @@
|
|||||||
* \brief Contructs vector with size "size" filled elements "value"
|
* \brief Contructs vector with size "size" filled elements "value"
|
||||||
* \details Example: \snippet picontainers.cpp PIVector::PIVector
|
* \details Example: \snippet picontainers.cpp PIVector::PIVector
|
||||||
|
|
||||||
|
* \fn PIVector::PIVector(std::initializer_list list);
|
||||||
|
* \brief Contructs vector from C++11 initializer list
|
||||||
|
* \details Example: \snippet picontainers.cpp PIVector::PIVector
|
||||||
|
|
||||||
* \fn const T & PIVector::at(size_t index) const;
|
* \fn const T & PIVector::at(size_t index) const;
|
||||||
* \brief Read-only access to element by index "index"
|
* \brief Read-only access to element by index "index"
|
||||||
* \details Example: \snippet picontainers.cpp PIVector::at_c
|
* \details Example: \snippet picontainers.cpp PIVector::at_c
|
||||||
|
|||||||
@@ -42,6 +42,7 @@
|
|||||||
#else
|
#else
|
||||||
# include <malloc.h>
|
# include <malloc.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <initializer_list>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <new>
|
#include <new>
|
||||||
#ifndef PIP_MEMALIGN_BYTES
|
#ifndef PIP_MEMALIGN_BYTES
|
||||||
|
|||||||
@@ -39,6 +39,11 @@ public:
|
|||||||
alloc(other.pid_size, true);
|
alloc(other.pid_size, true);
|
||||||
newT(pid_data + pid_start, other.pid_data + other.pid_start, pid_size);
|
newT(pid_data + pid_start, other.pid_data + other.pid_start, pid_size);
|
||||||
}
|
}
|
||||||
|
inline PIDeque(std::initializer_list<T> init_list): pid_data(0), pid_size(0), pid_rsize(0), pid_start(0) {
|
||||||
|
PIINTROSPECTION_CONTAINER_NEW(T, sizeof(T))
|
||||||
|
alloc(init_list.size(), true);
|
||||||
|
newT(pid_data, init_list.begin(), init_list.size());
|
||||||
|
}
|
||||||
inline PIDeque(const T * data, size_t size): pid_data(0), pid_size(0), pid_rsize(0), pid_start(0) {
|
inline PIDeque(const T * data, size_t size): pid_data(0), pid_size(0), pid_rsize(0), pid_start(0) {
|
||||||
PIINTROSPECTION_CONTAINER_NEW(T, sizeof(T))
|
PIINTROSPECTION_CONTAINER_NEW(T, sizeof(T))
|
||||||
alloc(size, true);
|
alloc(size, true);
|
||||||
@@ -49,6 +54,7 @@ public:
|
|||||||
resize(pid_size, f);
|
resize(pid_size, f);
|
||||||
}
|
}
|
||||||
inline PIDeque(PIDeque<T> && other): pid_data(other.pid_data), pid_size(other.pid_size), pid_rsize(other.pid_rsize), pid_start(other.pid_start) {
|
inline PIDeque(PIDeque<T> && other): pid_data(other.pid_data), pid_size(other.pid_size), pid_rsize(other.pid_rsize), pid_start(other.pid_start) {
|
||||||
|
PIINTROSPECTION_CONTAINER_NEW(T, sizeof(T))
|
||||||
other._reset();
|
other._reset();
|
||||||
}
|
}
|
||||||
inline virtual ~PIDeque() {
|
inline virtual ~PIDeque() {
|
||||||
|
|||||||
@@ -44,11 +44,17 @@ public:
|
|||||||
alloc(other.piv_size);
|
alloc(other.piv_size);
|
||||||
newT(piv_data, other.piv_data, piv_size);
|
newT(piv_data, other.piv_data, piv_size);
|
||||||
}
|
}
|
||||||
|
inline PIVector(std::initializer_list<T> init_list): piv_data(0), piv_size(0), piv_rsize(0) {
|
||||||
|
PIINTROSPECTION_CONTAINER_NEW(T, sizeof(T))
|
||||||
|
alloc(init_list.size());
|
||||||
|
newT(piv_data, init_list.begin(), init_list.size());
|
||||||
|
}
|
||||||
inline PIVector(size_t piv_size, const T & f = T()): piv_data(0), piv_size(0), piv_rsize(0) {
|
inline PIVector(size_t piv_size, const T & f = T()): piv_data(0), piv_size(0), piv_rsize(0) {
|
||||||
PIINTROSPECTION_CONTAINER_NEW(T, sizeof(T))
|
PIINTROSPECTION_CONTAINER_NEW(T, sizeof(T))
|
||||||
resize(piv_size, f);
|
resize(piv_size, f);
|
||||||
}
|
}
|
||||||
inline PIVector(PIVector<T> && other): piv_data(other.piv_data), piv_size(other.piv_size), piv_rsize(other.piv_rsize) {
|
inline PIVector(PIVector<T> && other): piv_data(other.piv_data), piv_size(other.piv_size), piv_rsize(other.piv_rsize) {
|
||||||
|
PIINTROSPECTION_CONTAINER_NEW(T, sizeof(T))
|
||||||
other._reset();
|
other._reset();
|
||||||
}
|
}
|
||||||
inline virtual ~PIVector() {
|
inline virtual ~PIVector() {
|
||||||
|
|||||||
Reference in New Issue
Block a user