Согласно библиотеке Boost String Algorithms , «обратитесь к главе design , чтобы увидеть точную спецификацию поддерживаемых типов строк», в которой, среди прочего, сказано «первое требование типа строки является то, что он должен быть [доступен], используя Boost.Range", и обратите внимание на реализацию MFC / ATL , написанную Shunsuke Sogame, которая должна позволять вам объединять библиотеки.
Редактировать: Поскольку вы упоминаете регулярное выражение в комментариях ниже, это все, что вам действительно нужно сделать (при условии сборки в юникоде):
CString inputString;
wcmatch matchGroups;
wregex yourRegex(L"^(.*)$"), regex::icase);
if (regex_search(static_cast<LPCWSTR>(inputString), matchGroups, yourRegex))
{
CString firstCapture = matchGroups[1].str().c_str();
}
Обратите внимание, как мы сокращаем различные типы строк до необработанных указателей, чтобы передавать их между библиотеками. Замените мою надуманную yourRegex
вашими требованиями, включая то, игнорируете ли вы регистр или нет в отношении якорей.