12 #include <fmt/format.h>
16 constexpr
struct select1st_t {
17 template <
typename S,
typename T>
21 template <
typename S,
typename T>
36 auto it = catalog_.find( property->
ClientName() );
37 if ( it == catalog_.end() ) {
43 it->second.erase( *property );
44 it->second.insert( property );
50 auto it = catalog_.find( client );
51 if ( it == catalog_.end() )
return nullptr;
53 auto pit =
std::find_if( it->second.begin(), it->second.end(),
54 [&](
const Property& property ) { return name == property.NameInClient(); } );
56 return ( pit != it->second.end() ) ? &*pit :
nullptr;
61 for (
const auto& client : catalog_ ) {
62 for (
const auto& current : client.second ) { result += current.ToString() +
"\n"; }
70 o << R
"(// ==================================================================================
72 // ==================================================================================
75 size_t nComponents = 0;
76 size_t nProperties = 0;
78 for (
const auto& client : catalog_ ) {
81 nProperties += client.second.size();
82 for (
const auto& current : client.second ) {
83 o <<
fmt::format(
"{:<44} = {} ;", current.FullName(), current.ValueAsString() );
86 o <<
fmt::format( R
"(// ==================================================================================
87 // End parser catalog #Components={} #Properties={}
88 // ==================================================================================
90 nComponents, nProperties );