Попытался попробовать сабжевый класс (GRETA).
Пример кода:
// greta.cpp : Defines the entry point for the console application.
//#include <stdafx.h>
#include <iostream>
#include <string>
#include"regexpr2.h"using namespace std;
using namespace regex;
int main() {
match_results results1;
subst_results results2;
string str( "The book <COST> $12.34" );
rpattern pat1( "\\$(\\d+)(\\.(\\d\\d))?" );
rpattern pat2( "<COST>", "цена");
// Match a dollar sign followed by one or more digits,
// optionally followed by a period and two more digits.
// The double-escapes are necessary to satisfy the compiler.
match_results::backref_type br = pat1.match( str, results1 );
subst_results results = pat2.substitute( str, results2 );
if( br.matched ) {
cout << "match success!" << endl;
cout << "price: " << br << endl;
} else {
cout << "match failed!" << endl;
}
return 0;
}
При попытке компиляции получаю следующую ошибку:
d:\program files\microsoft visual studio 8\!projects\example 1\greta\greta\restack.h(355) : warning C4346: 'regex::hetero_stack<AlignmentT,RuntimeTypeCheckT,AssumePodT,DynamicBlockSizeT,StaticBlockSizeT>::stack_node::header' : dependent name is not a type
prefix with 'typename' to indicate a type
Такое впечатление, что проблема с STL, помогите, пожалуйста разобраться.
Re: Использование GRETA (regexp) vs Visual Studio 2005 beta2
K>d:\program files\microsoft visual studio 8\!projects\example 1\greta\greta\restack.h(355) : warning C4346: 'regex::hetero_stack<AlignmentT,RuntimeTypeCheckT,AssumePodT,DynamicBlockSizeT,StaticBlockSizeT>::stack_node::header' : dependent name is not a type K> prefix with 'typename' to indicate a type
вообще то это warning
Re[2]: Использование GRETA (regexp) vs Visual Studio 2005 be
Здравствуйте, ioni, Вы писали:
K>>d:\program files\microsoft visual studio 8\!projects\example 1\greta\greta\restack.h(355) : warning C4346: 'regex::hetero_stack<AlignmentT,RuntimeTypeCheckT,AssumePodT,DynamicBlockSizeT,StaticBlockSizeT>::stack_node::header' : dependent name is not a type K>> prefix with 'typename' to indicate a type
I>вообще то это warning
Ну да, промахнулся, вот такая ошибка:
d:\program files\microsoft visual studio 8\!projects\example 1\greta\greta\restack.h(355) : error C2923: 'regex::hetero_stack<AlignmentT,RuntimeTypeCheckT,AssumePodT,DynamicBlockSizeT,StaticBlockSizeT>::aligned_sizeof' : 'regex::hetero_stack<AlignmentT,RuntimeTypeCheckT,AssumePodT,DynamicBlockSizeT,StaticBlockSizeT>::stack_node::header' is not a valid template type argument for parameter 'T'
Re: Использование GRETA (regexp) vs Visual Studio 2005 beta2
> При попытке компиляции получаю следующую ошибку: > d:\program files\microsoft visual studio 8\!projects\example 1\greta\greta\restack.h(355) : warning C4346: 'regex::hetero_stack<AlignmentT,RuntimeTypeCheckT,AssumePodT,DynamicBlockSizeT,StaticBlockSizeT>::stack_node::header' : dependent name is not a type > prefix with 'typename' to indicate a type > > Такое впечатление, что проблема с STL, помогите, пожалуйста разобраться.
Проблема с greta — код, очевидно, заточен под VC 6, надо новую версию выкачивать.
Posted via RSDN NNTP Server 2.0
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re: Использование GRETA (regexp) vs Visual Studio 2005 beta2
Вообще в описании класса написано следующее:
"STL
This regular expression package makes heavy use of STL (The Standard Template Library). STL is available in VC5 and higher. If you are not currently using STL in your projects (why not?!) you may have to make some modifications to your build settings to use this package. If you are using the NT build environment, you should add the line “USE_STL=1” to your sources file. If you are building in VC, you may need to explicitly link to one of the STL libraries (msvcprt.lib or libcp.lib, or their debug equivalents)."
Может быть у меня в VC что нибудь не включено?
Также был бы признателен за рабочий пример.
Re[2]: Использование GRETA (regexp) vs Visual Studio 2005 be
>> Но... все равно не компилится... теперь новая ошибка, даже несколько:
S>char c wchar_t поругались — Unicode для своего проекта убери. И вообще, читайте сообщения об ошибках — они рулез
Лучше строки в _T() оберни. Тогда и так, и так компиляться будет.
А грету эту явно 2005й не компиляли... привыкли к особенностям шестерки.
Re[2]: Использование GRETA (regexp) vs Visual Studio 2005 be
Здравствуйте, anton_t, Вы писали:
_>Здравствуйте, karamultuk, Вы писали:
_>А вообще, уже релиз вышел
Разве дело в релизе?
Кстати. попробовал под VC6, там ошибки посыпались уже линковке.
Re: Использование GRETA (regexp) vs Visual Studio 2005 beta2
От:
Аноним
Дата:
28.12.05 15:16
Оценка:
Не совсем по теме, но когда мне понадобились регулярные выражения я остановился на boost::regex т.к. greta уже давно не обновляется и не поддерживается