Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

boost regex_match - Баг? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ выдает ошибку на втором файле , подскажите http://www.cyberforum.ru/cpp-beginners/thread1065280.html
по сути программа должна в 1 и 2 файле найти одинаковые слова и записать в 3 . #include "stdafx.h" #include "iostream" #include "algorithm" #include "string" #include "iterator" #include...
C++ Функция должна принять указатель на саму себя не рекурсия. (ошибка в названии) Функция должна принять указатель на саму себя. моя неверная попытка имеет вид int myfunc(int (*P)(int)) принимаю указатель на функцию { return 0; } http://www.cyberforum.ru/cpp-beginners/thread1065277.html
Хранение экземпляров классов-наследников, и вызов их методов C++
Столкнулся с проблемой. Есть класс-родитель и 2 класса-наследника. class Base { public: void baseFunc(); }; class Derived1 : public Base
C++ Получить все возможные варианты комплектов книг. Исправить код
#include<iostream.h> using namespace std; int main() { int i=0, j=0, k=0, m=0; while(i<7) {
C++ Определить структуру Модель Виндовс для работы с моделями экранных окон.В качестве полей задаются http://www.cyberforum.ru/cpp-beginners/thread1065255.html
Определить структуру Model Window для работы с моделями экранных окон.В качестве полей задаются:заголовок окна,координаты левого верхнего угла,размер по горизонтали,размер по вертикали,состояние...
C++ Найти уравнение прямой, проходящей через точку А Найти уравнеие прямой (в форме альфа*x+бета*y+гамма=0),проходящей через точку А(X1,Y1) перпендикулярно к прямой ax+by+c=0. Пожалуйста помогите написать программу. подробнее

Показать сообщение отдельно
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214

boost regex_match - Баг? - C++

08.01.2014, 00:36. Просмотров 249. Ответов 2
Метки (Все метки)

Снова неразрешимая проблема (
По документации, функции поиска regex_match/regex_search должны заполнять (делать не пустым) объект с результатами поиска, только если находят все/часть регулярного выражения в строке.

В этом коде ну никак не может совпадать ни часть, ни все регулярное выражение. Но объект what на выходе НЕ пустой.

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <boost/regex.hpp>
#include <iostream>
int main()  {
    using namespace std;
    using namespace boost;  cout << boolalpha;
    string s("###");
    regex e(R"_([[:alnum:]]+\.[[:alnum:]]+)_", regex_constants::extended);
    smatch what;
    cout << "Default constructed: " << what.empty() << endl;
 
    if ( regex_match(s.cbegin(), s.cend(), what, e) )
        cout <<"With regex_match: " << what.empty() << endl;
 
    cout <<"After regex_match: " << what.empty() << endl;
    return 0;
}
Вывод:
Код
 
Default constructed: true
After regex_match: false
Как видно, ветка if даже не выполнялась (что верно), но объект what модифицировался.
ЧЯДНТ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru