#include <iostream>
#include <vector>
struct defult_configuration
{
static constexpr int size_limit = 1024;
// ...
};
template <typename config_t>
class NamedBuffer
{
public:
NamedBuffer(char const *name, uint32_t size, config_t const & cfg)
: config(cfg)
, name(name)
, buffer(size > config.size_limit ? config.size_limit : size)
{
this->info();
}
void info()
{
std::cout << "name : " << this->name << '\n';
std::cout << "size : " << this->buffer.size() << '\n';
}
// ...
private:
config_t const & config;
std::string name;
std::vector<uint8_t> buffer;
// ...
};
int main()
{
defult_configuration cfg; // Config structure
constexpr char const *name = "TestBuffer";
constexpr uint32_t size = 1024 * 1024; // Too big size for buffer
NamedBuffer nb(name, size, cfg);
}