5 template<
typename ValueType,
typename ArgType,
typename DataObject>
6 bool DataFormatterOperator<ValueType,
8 DataObject>::parse_args(
const std::string &_args) {
12 if(!m_arg_formatter.empty())
15 std::vector<std::string> format_tags, subexprs;
21 for(
Index i = 0; i < format_tags.size(); i++) {
22 std::string ttag(format_tags[i].size(),
' ');
23 std::transform(format_tags[i].cbegin(), format_tags[i].cend(), ttag.begin(), tolower);
26 if(boost::is_any_of(
"-+.0123456789")(ch)) {
27 if(std::any_of(ttag.cbegin(),
29 boost::is_any_of(
".e"))) {
32 val = std::stod(ttag);
35 throw std::runtime_error(
"Unable to parse '" + ttag +
"' from subexpression " + _args +
"\n");
42 val = std::stol(ttag);
45 throw std::runtime_error(
"Unable to parse '" + ttag +
"' from subexpression " + _args +
"\n");
50 else if(ttag ==
"false")
52 else if(ttag ==
"true")
54 else if((ch ==
'\'' || ch ==
'\"') && ch == ttag.back() && ttag.size() > 1) {
62 m_arg_formatter.push_back(proto_format, subexprs[i]);
71 template<
typename ValueType,
typename ArgType,
typename DataObject>
74 DataObject>::short_header(
const DataObject &_obj)
const {
75 std::stringstream t_ss;
76 m_arg_formatter.print_header(_obj, t_ss);
78 std::vector<std::string> format_tags, subexprs;
83 if(format_tags.size()) {
85 for(
Index i = 0; i < format_tags.size(); i++) {
86 t_ss << format_tags[i];
87 if(subexprs[i].size() > 0)
88 t_ss <<
'(' << subexprs[i] <<
')';
89 if(i + 1 < format_tags.size())
void split_formatter_expression(const std::string &input_expr, std::vector< std::string > &tag_names, std::vector< std::string > &sub_exprs)
EigenIndex Index
For long integer indexing: