Показать сообщение отдельно

  #10  
Старый 16.07.2018, 23:29
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

Цитата:
Сообщение от Roger571  

Пытаюсь разобраться, как работать с boost::regex и в процессе захотелось написать более удобную обертку под свои нужды. Но есть одно но, никак не могу понять почему объект boost::smatch невалидно передается по ссылке.
Вот сам код:
Цитата:
Сообщение от Спойлер  


C++:





[CODE]
#include "main.h"
bool
easyRegex
(
std
::
string sString
,
boost
::
regex rRegex
,
boost
::
smatch
&
sResults
,
int
iArg
,
char
*
szRegexName
)
{
if
(
boost
::
regex_search
(
sString
,
sResults
,
rRegex
)
)
{
if
(
sResults
.
size
(
)



А вот результат его выполнения:
Цитата:
Сообщение от Спойлер  


C++:





Код:
[
easyRegex
]
Pointer
:
03901658
[
easyRegex
]
Size
:
5
[
easyRegex
]
[
1
]
24
[
easyRegex
]
[
2
]
string
[
easyRegex
]
[
3
]
3452
[
easyRegex
]
[
4
]
43556
aad
[
main
]
Pointer
:
03901658
[
main
]
Size
:
5


И далее идет краш "Expression: string iterators incompatible".
Хотелось бы разобраться, что же все-таки не так
Блед, хватит страдать - Бери STL. А если хочется "easyRegex", то бери SRStrings или целый Qt.
 
Ответить с цитированием