New cpp folder structure

Signed-off-by: Alexander Borsuk <me@alex.bio>
This commit is contained in:
Alexander Borsuk
2025-07-17 22:35:52 +03:00
committed by Konstantin Pastbin
parent c9cbb64f12
commit 76ffc99abd
2390 changed files with 345 additions and 339 deletions

View File

@@ -0,0 +1,57 @@
#pragma once
#include "base/buffer_vector.hpp"
#include <map>
namespace routing
{
namespace impl
{
class Statistics
{
struct Info
{
size_t m_sum = 0;
size_t m_count = 0;
size_t m_max = 0;
};
static std::map<char const *, Info> s_map;
public:
static void Add(char const * name, size_t val);
static void Dump();
};
} // namespace impl
template <class T> class SmallList : public buffer_vector<T, 8>
{
using BaseT = buffer_vector<T, 8>;
public:
using BaseT::BaseT;
/// @todo Use in Generator only.
/*
void clear()
{
impl::Statistics::Add(typeid(T).name(), BaseT::size());
BaseT::clear();
}
~SmallList()
{
impl::Statistics::Add(typeid(T).name(), BaseT::size());
}
*/
};
template <typename T>
inline std::string DebugPrint(SmallList<T> const & v)
{
return DebugPrint(static_cast<buffer_vector<T, 8> const &>(v));
}
} // namesapce routing