refactor(option_utils): enhance option handling with default values and names

Removed server.hpp as part of refactoring the option utilities to use Boost's
program_options more effectively, allowing for named default values.
This commit is contained in:
Ваше Имя
2025-10-05 14:13:52 +04:00
parent a4c84379ff
commit 9f88390b1a
3 changed files with 16 additions and 14 deletions
+8 -2
View File
@@ -4,11 +4,17 @@
class OptionUtils class OptionUtils
{ {
public:
template <typename T>
using OptionValue = boost::program_options::typed_value<T> *;
template <typename T>
static OptionValue<T>
withDefault(const T &value, const char *name = nullptr);
protected: protected:
OptionUtils() = default; OptionUtils() = default;
~OptionUtils() = default; ~OptionUtils() = default;
template <typename T> static auto withDefault(T value);
}; };
#include "option_utils.tpp" #include "option_utils.tpp"
+8 -3
View File
@@ -1,8 +1,13 @@
#pragma once #pragma once
#include "option_utils.hpp" #include "option_utils.hpp"
template <typename T> auto OptionUtils::withDefault(T value) template <typename T>
OptionUtils::OptionValue<T>
OptionUtils::withDefault(const T &value, const char *name)
{ {
return boost::program_options::value<T>()->default_value(value); auto v = boost::program_options::value<T>()->default_value(value);
if (name) {
v->value_name(name); // Optional
}
return v;
} }
-9
View File
@@ -1,9 +0,0 @@
#pragma once
class Server
{
public:
virtual ~Server() = default;
virtual void start() = 0;
virtual void stop() = 0;
};