first reCommit
This commit is contained in:
50
nodes/znode_vector.h
Normal file
50
nodes/znode_vector.h
Normal file
@@ -0,0 +1,50 @@
|
||||
#ifndef ZNODE_VECTOR_H
|
||||
#define ZNODE_VECTOR_H
|
||||
|
||||
#include <vector>
|
||||
|
||||
|
||||
|
||||
//using znode_vector = std::vector<zplain_node*>;
|
||||
template<class T>
|
||||
class znode_vector : public std::vector<T*>
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
// FIX! implement this!
|
||||
// why delete??
|
||||
znode_vector() = default;
|
||||
znode_vector(const znode_vector&) = delete;
|
||||
znode_vector& operator=(const znode_vector&) = delete;
|
||||
|
||||
|
||||
virtual ~znode_vector()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
znode_vector* clone() const
|
||||
{
|
||||
znode_vector* new_list = new znode_vector;
|
||||
clone_into( *new_list );
|
||||
return new_list;
|
||||
}
|
||||
|
||||
void clone_into( znode_vector& new_list ) const
|
||||
{
|
||||
new_list.clear();
|
||||
for(const auto entry : *this )
|
||||
new_list.push_back( entry->clone() );
|
||||
}
|
||||
|
||||
void clone_from( const znode_vector& src_list )
|
||||
{
|
||||
this->clear();
|
||||
for(const auto entry : src_list )
|
||||
this->push_back( entry->clone() );
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
#endif // ZNODE_VECTOR_H
|
Reference in New Issue
Block a user