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 );