Newer
Older
/* Copyright (C) 2022 FIAS Frankfurt Institute for Advanced Studies, Frankfurt / Main
SPDX-License-Identifier: GPL-3.0-only
Authors: Felix Weiglhofer [committer] */
#ifndef CBM_ALGO_BASE_POD_VECTOR_H
#define CBM_ALGO_BASE_POD_VECTOR_H
#include "util/PODAllocator.h"
namespace cbm::algo
{
/**
* @brief PODVector is a std::vector that doesn't initialize its elements.
*/
template<class T>
using PODVector = std::vector<T, PODAllocator<T>>;
template<typename T>
std::vector<T> ToStdVector(const PODVector<T>& vec)
{
return std::vector<T>(vec.begin(), vec.end());
}
template<typename T>
PODVector<T> ToPODVector(const std::vector<T>& vec)
{
return PODVector<T>(vec.begin(), vec.end());
}
} // namespace cbm::algo
#endif // CBM_ALGO_BASE_POD_VECTOR_H