string FindSTLString = "какой либо текст";
string FormatStr("\\w+");
boost::regex RegFormat(FormatStr);//регулярное выражение
typedef std::string::const_iterator Niter;
Niter ItStart = FindSTLString.begin();
Niter ItEnd = FindSTLString.end();
boost::smatch Result;//результат поиска
boost::regex_search(ItStart, ItEnd, Result, RegFormat);
Boost и С++ Builder XE
Возникла следующая проблема. Пытаюсь использовать boost в С++ Builer XE скачал include файлы boost'а и кинул C:\Program Files\Embarcadero\RAD Studio\8.0\include, lib файлы уже были в C:\Program Files\Embarcadero\RAD Studio\8.0\lib\win32\release.
Пробую использовать регулярные выражения например код:
Код:
В результате возникают ошибки
[BCC32 Error] sp_convertible.hpp(48): E2514 Cannot (yet) use member overload resolution during template instantiation
[BCC32 Error] sp_convertible.hpp(66): E2029 'detail::sp_enable_if_convertible_impl<&value>' must be a previously defined class or struct
[BCC32 Error] object_cache.hpp(76): E2285 Could not find a match for 'shared_ptr<const re_detail::w32_regex_traits_implementation<char> >::shared_ptr(shared_ptr<const re_detail::w32_regex_traits_implementation<char> >&)'
Если же в регулярное выражение не передавать строку:
Код:
boost::regex RegFormat();
То код компилируется..
С чем может быть связанно? И какие есть предположения?
В справке написано что C++Builder XE протестирован с версией boost 1.39.
С ним же идет буст, зачем качать?
При попытке подключить регулярные выражения #include <boost/regex.hpp> или #include <regex.hpp> говорит что не может их найти. Поэтому скачал с сайта Boost и кинул в include папку.. После чего и появилась проблема..
откатывайте назад и ищите почему не может найти. Должен находить. Буст весь поставлен был с билдером?
Поиск по слову regex в папке RAD Studio ничего не находит кроме как lib и dll файлов.. Заголовочных файлов нет.