7#ifndef CORE_PROTOCOL_BASE_UTILS_HPP
8#define CORE_PROTOCOL_BASE_UTILS_HPP
15#include <boost/variant.hpp>
25 if constexpr (std::is_same_v<T, std::string>) {
26 return "[scalar type: std::string]= " + value;
28 return "[scalar type: " + demangle_type<T>() +
"]= " + std::to_string(value);
34 std::string
operator()(
const std::vector<T>& vec)
const {
36 std::ostringstream oss;
37 oss <<
"[vector type: " << demangle_type<T>() <<
"]= {";
39 for (
size_t i = 0; i < vec.size(); ++i) {
40 if (i != 0) oss <<
", ";
41 oss << (*this)(vec[i]);
50 std::string demangle_type()
const {
51 return boost::core::demangle(
typeid(T).name());
61 if constexpr (std::is_same_v<T, std::string>) {
64 return std::to_string(value);
70 std::string
operator()(
const std::vector<T>& vec)
const {
72 std::ostringstream oss;
74 for (
size_t i = 0; i < vec.size(); ++i) {
75 if (i != 0) oss <<
", ";
76 oss << (*this)(vec[i]);
std::string operator()(const std::vector< T > &vec) const
Definition utils.hpp:34
std::string operator()(const T &value) const
Definition utils.hpp:24
std::string operator()(const T &value) const
Definition utils.hpp:60
std::string operator()(const std::vector< T > &vec) const
Definition utils.hpp:70
Definition commFactory.cpp:13