13 #include <boost/algorithm/string/join.hpp>
14 #include <boost/format.hpp>
27 [](
VectorOfStrings& lhs,
const std::string& rhs ) { lhs.push_back( rhs ); },
43 const std::string& rhs ) { lhs.erase( std::find( lhs.begin(), lhs.end(), rhs ) ); },
44 []( std::vector<std::string>& lhs,
const std::vector<std::string>& rhs ) {
45 for (
const auto& item : rhs ) lhs.erase( std::find( lhs.begin(), lhs.end(), item ) );
47 []( std::map<std::string, std::string>& lhs,
const std::string& rhs ) { lhs.erase( rhs ); },
48 []( std::map<std::string, std::string>& lhs,
const std::vector<std::string>& rhs ) {
49 for (
const auto& item : rhs ) lhs.erase( item );
62 if ( IsReference() ) {
63 const auto& value = std::get<VectorOfStrings>( value_ );
64 if ( value.at( 0 ) !=
"" ) {
65 return "@" + value.at( 0 ) +
"." + value.at( 1 );
67 return "@" + value.at( 0 );
72 [](
const VectorOfStrings&
v ) {
return '[' + boost::algorithm::join(
v,
", " ) +
']'; },
74 std::string result =
"{";
75 std::string delim =
"";
76 for (
const auto& in :
v ) {
77 result += delim + in.first +
":" + in.second;