Нет однозначного преобразования CString
в первый параметр любой из std::regex_match
перегрузок.
Добавьте GetString()
для явного преобразования в const TCHAR *:
std::regex_match(csTest.GetString(), pattern)
Или, если вы хотите использовать диапазон итераторов (что может быть микрооптимизацией), используйте дополнительно GetLength()
:
std::regex_match(csTest.GetString(), csTest.GetString() + csTest.GetLength(), pattern)
В комментарии рекомендуется использовать CAtlRegExp
. Вы можете сделать это тоже, но обратите внимание, что CAtlRegExp
имеет нестандартный синтаксис, а также имеет некоторые ошибки и даже больше не является частью ATL, поставляемой с Visual Studio (часть «сервера ATL», которая отделена от ATL начиная Visual Studio 2008). Так что я бы не стал использовать CAtlRegExp
.