Я использую библиотеку Boost 1.54 в моей программе. Моя задача — развернуть несколько шаблонов в строку.
Одним из таких случаев является закрывающая скобка }
находится в строке заменить его >
Я написал следующее регулярное выражение в моем коде.
boost::wregex rightbrace(L"\}"); // replace this by >
strText = boost::regex_replace(strText, rightbrace, L">");
Мой код компилируется нормально. Но моя программа аварийно завершает работу, когда она сталкивается с первым оператором, она падает со следующим исключением
Необработанное исключение в 0x7599c41f в Compress.exe: исключение Microsoft C ++: boost :: exception_detail :: clone_impl> @ 0x0018fa54
поскольку }
это специальный символ, с которым я избежал \
условное обозначение.
Кто-нибудь может сказать мне, в чем здесь проблема?
Вы избежали }
для повышения, но вам нужно избежать \
escape char для компилятора.
boost::wregex rightbrace(L"\\}");
Других решений пока нет …