Started work on build system
This commit is contained in:
@@ -3,7 +3,8 @@
|
||||
|
||||
#include "tier1/utlbuffer.h"
|
||||
#include "tier0/lib.h"
|
||||
|
||||
#include "tier1/utlinitlist.h"
|
||||
#include <initializer_list>
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Basic vector implementation. There isn't much in them.
|
||||
@@ -14,6 +15,9 @@ class CUtlVector
|
||||
public:
|
||||
CUtlVector( void );
|
||||
CUtlVector( size_t nSize );
|
||||
CUtlVector( CUtlInitializerList<T> initalizerList );
|
||||
CUtlVector( const CUtlVector &vector );
|
||||
~CUtlVector();
|
||||
|
||||
void AppendHead( const T &data );
|
||||
void AppendHead( const T *pData, size_t n );
|
||||
@@ -33,6 +37,7 @@ public:
|
||||
|
||||
T &operator[]( size_t nIndex );
|
||||
T &operator[]( size_t nIndex ) const;
|
||||
CUtlVector<T> &operator=(const CUtlVector<T> &vec);
|
||||
|
||||
// Iterator stuff
|
||||
struct Iterator {
|
||||
@@ -83,6 +88,29 @@ CUtlVector<T>::CUtlVector( size_t nSize )
|
||||
m_nSize = nSize;
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Fancy constructor
|
||||
//----------------------------------------------------------------------------
|
||||
template<typename T>
|
||||
CUtlVector<T>::CUtlVector( CUtlInitializerList<T> initalizerList )
|
||||
{
|
||||
m_data.Resize(initalizerList.size());
|
||||
m_nSize = m_data.GetSize();
|
||||
V_memcpy(m_data.GetMemory(), initalizerList.begin(), m_data.GetSize()*sizeof(T));
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
CUtlVector<T>::CUtlVector( const CUtlVector& vector )
|
||||
{
|
||||
m_data = vector.m_data;
|
||||
}
|
||||
template<typename T>
|
||||
CUtlVector<T>::~CUtlVector()
|
||||
{
|
||||
for ( uint32_t i = 0; i < m_nSize; i++ )
|
||||
m_data[i].~T();
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
void CUtlVector<T>::AppendHead( const T &data )
|
||||
{
|
||||
@@ -159,6 +187,18 @@ void CUtlVector<T>::Reserve( size_t nSize )
|
||||
{
|
||||
m_data.Resize(nSize);
|
||||
}
|
||||
template<typename T>
|
||||
CUtlVector<T> &CUtlVector<T>::operator=(const CUtlVector<T> &vec)
|
||||
{
|
||||
if (this != &vec)
|
||||
{
|
||||
m_nSize = vec.m_nSize;
|
||||
m_data.Resize(m_nSize);
|
||||
for ( uint32_t i = 0; i < m_nSize; i++ )
|
||||
m_data[i] = vec.m_data[i];
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
T &CUtlVector<T>::operator[]( size_t nIndex )
|
||||
|
||||
Reference in New Issue
Block a user