Форум программистов, компьютерный форум 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 "fstream" #include "set" using namespace std;
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 для работы с моделями экранных окон.В качестве полей задаются:заголовок окна,координаты левого верхнего угла,размер по горизонтали,размер по вертикали,состояние "видимое/невидимое",состояние"с рамкой/без рамки".Координаты и размеры указываются в целых числах.Кроме функций read и print реализовать следующие функции:передвижение окна по горизонтали,по...
C++ Найти уравнение прямой, проходящей через точку А Найти уравнеие прямой (в форме альфа*x+бета*y+гамма=0),проходящей через точку А(X1,Y1) перпендикулярно к прямой ax+by+c=0. Пожалуйста помогите написать программу. подробнее

Показать сообщение отдельно
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
08.01.2014, 00:36     boost regex_match - Баг?
Снова неразрешимая проблема (
По документации, функции поиска 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 модифицировался.
ЧЯДНТ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru