boost::smatch
является псевдонимом match_results<std::string::const_iterator>
, поэтому решение:
boost::match_results<boost::string_ref::const_iterator> base;
Я делал это до того, как использовал стандартный синтаксис SQL-сортировки. Существует множество функций и методов синтаксического анализа.
http://myapp.com/books?sort=author asc,datepublished desc&count=12
, которые будут закодированы в
http://myapp.com/books?sort=author+asc,datepublished+desc&count=12
Как насчет полностью совместимой с PHP версии, подобной этой:
http://myapp.com/books?sort[0][name]=author&sort[0][dir]=asc&sort[1][name]=datepublished&sort[1][dir]=desc&count=12
Немного длиннее, но гораздо удобнее и, как я сказал совместимый с PHP. ASP.NET может также реализовать поддержку этого формата.
Это создаст массив, sort , где каждый элемент сортировки имеет имя и dir свойство.
Я бы не стал использовать GET-подобные параметры. Как насчет этого:
http://myapp.com/books/sortedby/author:asc+datepublished:desc/count/12
Идея состоит в том, что если вам нужно уточнить поиск ресурса на основе критерия, вы добавляете его имя в URL, а затем значение параметра. Если вам нужно более одного значения параметра, разделите их знаком «+».
Вот что StackOverflow использует для помеченных вопросов:
http://stackoverflow.com/questions/tagged/java+servlet
Однако я признаю, что добавление count / 12 в конце выглядит немного странно, но я могу не придумай ничего лучше.