1 #include "option_schema.h"     2 #include "string_utils.h"    16         case option_type::boolean_e: params_ = copy_schema<boolean_ini_t>(source.params_); 
break;
    17         case option_type::enum_e: params_ = copy_schema<enum_ini_t>(source.params_); 
break;
    18         case option_type::float_e: params_ = copy_schema<float_ini_t>(source.params_); 
break;
    19         case option_type::signed_e: params_ = copy_schema<signed_ini_t>(source.params_); 
break;
    20         case option_type::string_e: params_ = copy_schema<string_ini_t>(source.params_); 
break;
    21         case option_type::unsigned_e: params_ = copy_schema<unsigned_ini_t>(source.params_); 
break;
    22         case option_type::invalid_e:
    38         if (
this != &source) {
    40             params_ = std::move(source.params_);
    57         return params_->type == option_item::list;
    62         return params_->default_value;
    67         return params_->requirement == item_requirement::mandatory;
    72         return params_->comment;
    77         if (params_->type == option_item::single && opt.
is_list()) {
    79         } 
else if (params_->type == option_item::list && !opt.
is_list()) {
    85             parse_option_items(opt);
    89         validate_option_items(opt);
    92     void option_schema::validate_option_items(
option &opt)
 const    96         case option_type::boolean_e:
    97             validate_typed_option_items<boolean_ini_t>(opt.
get_list<boolean_ini_t>(), opt.
get_name());
    99         case option_type::enum_e:
   102         case option_type::float_e:
   103             validate_typed_option_items<float_ini_t>(opt.
get_list<float_ini_t>(), opt.
get_name());
   105         case option_type::signed_e:
   106             validate_typed_option_items<signed_ini_t>(opt.
get_list<signed_ini_t>(), opt.
get_name());
   108         case option_type::string_e:
   109             validate_typed_option_items<string_ini_t>(opt.
get_list<string_ini_t>(), opt.
get_name());
   111         case option_type::unsigned_e:
   112             validate_typed_option_items<unsigned_ini_t>(opt.
get_list<unsigned_ini_t>(), opt.
get_name());
   114         case option_type::invalid_e:
   121     void option_schema::parse_option_items(
option &opt)
 const   124         case option_type::boolean_e:
   125             opt.
set_list<boolean_ini_t>(parse_typed_option_items<boolean_ini_t>(
   128         case option_type::enum_e:
   132         case option_type::float_e:
   133             opt.
set_list<float_ini_t>(parse_typed_option_items<float_ini_t>(
   136         case option_type::signed_e:
   137             opt.
set_list<signed_ini_t>(parse_typed_option_items<signed_ini_t>(
   140         case option_type::string_e:
   143         case option_type::unsigned_e:
   144             opt.
set_list<unsigned_ini_t>(parse_typed_option_items<unsigned_ini_t>(
   147         case option_type::invalid_e:
   158         for (
auto &comment_line : comment_lines) {
   159             os << 
";" << comment_line << std::endl;
   163         std::string info_line = 
is_mandatory() ? 
"mandatory" : 
"optional";
   165         info_line += 
is_list() ? 
"list" : 
"single";
   166         os << 
";<" << info_line << 
">" << std::endl;
 
float_ini_t parse_string< float_ini_t >(const std::string &value, const std::string &option_name)
 
signed_ini_t parse_string< signed_ini_t >(const std::string &value, const std::string &option_name)
 
void validate_option(option &opt) const 
 
const std::string & get_name() const 
 
option_schema & operator=(const option_schema &source)
 
const std::string & get_comment() const 
 
const std::string & get_name() const 
 
std::vector< ReturnType > get_list() const 
 
void set_list(const std::vector< ValueType > &list)
 
option_type get_type() const 
 
option_type get_type() const 
 
bool is_mandatory() const 
 
INICPP_API friend std::ostream & operator<<(std::ostream &os, const option_schema &opt_schema)
 
unsigned_ini_t parse_string< unsigned_ini_t >(const std::string &value, const std::string &option_name)
 
const std::string & get_default_value() const 
 
std::vector< std::string > split(const std::string &str, char delim)
 
enum_ini_t parse_string< enum_ini_t >(const std::string &value, const std::string &option_name)
 
boolean_ini_t parse_string< boolean_ini_t >(const std::string &value, const std::string &option_name)
 
std::ostream & write_additional_info(std::ostream &os) const