я пытаюсь использовать повышение regex в рамках моей программы, которая проблема, я получаю эту ошибку... единственное действие по установке, которое я сделал должен был добавить: "C:\Program Files\boost\boost_1_42" в Дополнительное Включают Каталоги...
я использую VS2008...
попытка реализовать это:
#include <iostream>
#include <string>
#include <boost/regex.hpp>
using namespace std;
int main( ) {
std::string s, sre;
boost::regex re;
boost::cmatch matches;
while(true)
{
cout << "Expression: ";
cin >> sre;
if (sre == "quit")
{
break;
}
cout << "String: ";
cin >> s;
try
{
// Assignment and construction initialize the FSM used
// for regexp parsing
re = sre;
}
catch (boost::regex_error& e)
{
cout << sre << " is not a valid regular expression: \""
<< e.what() << "\"" << endl;
continue;
}
// if (boost::regex_match(s.begin(), s.end(), re))
if (boost::regex_match(s.c_str(), matches, re))
{
// matches[0] contains the original string. matches[n]
// contains a sub_match object for each matching
// subexpression
for (int i = 1; i < matches.size(); i++)
{
// sub_match::first and sub_match::second are iterators that
// refer to the first and one past the last chars of the
// matching subexpression
string match(matches[i].first, matches[i].second);
cout << "\tmatches[" << i << "] = " << match << endl;
}
}
else
{
cout << "The regexp \"" << re << "\" does not match \"" << s << "\"" << endl;
}
}
}
что, кажется, проблема? какие-либо дополнительные настройки должны быть установлены?
Необходимо создать некоторые библиотеки Boost; Это одна из них. Вот как их можно собрать:
Создайте новый файл с именем boost_build.bat
и поместите внутрь:
bjam toolset=msvc-9.0 variant=release threading=multi link=static define=_SECURE_SCL=0 define=_HAS_ITERATOR_DEBUGGING=0
bjam toolset=msvc-9.0 variant=debug threading=multi link=static
Примечание 9.0 относится к VS 2008. (10.0 для 2010, 8.0 для 2005, 7.1 для 2003, 6.0 для, ну 6.0). Как только вы это сделаете:
Распакуйте build_boost.bat
в
Перейдите в:
И запустите build_dist.bat
Скопируйте
в
Выполнить boost_build.bat
Библиотеки находятся в
Обратите внимание, это мой собственный метод. Я бы полюбил , если бы кто-нибудь ответил более легким способом или какую-нибудь ссылку от Boost; кажется, трудно найти правильные инструкции по сборке от Boost.
После сборки убедитесь, что вы сообщили компилятору, где библиотеки находятся в ваших каталогах VC (пути к библиотекам); добавьте "
".
В определении bjam
у меня есть _SECURE_SCL = 0
_HAS_ITERATOR_DEBUGGING = 0
для выпуска. Это отключает все проверки итераторов в сборках Release для повышения скорости.
Вы установили многопоточную отладочную версию Boost? Если нет, пожалуйста, сделайте это. В противном случае проверьте путь к вашей библиотеке (в настройках проекта), чтобы он включал путь к файлу, упомянутому в сообщении об ошибке.