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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
#1

std::regex - всегда выдает "NO!" - C++

24.12.2013, 23:21. Просмотров 762. Ответов 21
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <string>
#include <iostream>
#include <regex>
using namespace std;
int main() {
    string str("abc");
    setlocale(LC_CTYPE, "C");
    regex reg("abc", regex_constants::basic);
    smatch mat;
    if(regex_search(str.cbegin(), str.cend(), mat, reg))
        cout <<"YES!" << endl;
    else
        cout << "NO!" << endl;
 
    return EXIT_SUCCESS;
}
Почему мне всегда выдает NO! ?
Bash
1
2
3
cc --version
cc (GCC) 4.8.2
Copyright (C) 2013 Free Software Foundation, Inc.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2013, 23:21     std::regex - всегда выдает "NO!"
Посмотрите здесь:

namespace "std" has no member "vector" - C++
Собственно такая проблема, мне нужно использовать в программе std::vector, однако VC ругается, мол нет ни каких векторов в std. Люди...

Добавил в "инклюды" regex, стал нерабочим алгоритм transform - C++
Доброго дня) В общем, может сталкивался кто - бредовая какая-то ошибка. В тексте программы есть алгоритм, преобразующий регистр...

Error: cannot open source file "regex" - C++
Помогите пожалуйста разобраться, пытаюсь подключить #include &lt;regex&gt; но выдает ошибку Error: cannot open source file &quot;regex&quot; ...

Как сделать что бы программа всегда была "поверх" всех окон - C++
какую команду в скрипте нужно ввести, что бы программа была по верх всех окон? Заранее спасибо

Как убрать привилегии системы? Почему GetUserName всегда возвращает "SYSTEM"? - C++
Здорово, народ! У меня такая ситуация - есть программа, работающая как служба, так вот эта прога при получении имени юзера...

Для чего в коде нужна строка "using namespace std"? - C++
у меня возникла проблема при удалении &quot;using namespace std;&quot; перестает работать cout точнее пишет Build FAILED. File2.cpp(11,6):...

Коллеги что же все такие делает "using namespace std"? - C++
Я понял то что &quot;using namespace st&quot; мы вводим для того что бы не писать &quot;std::cout&lt;&lt;&quot; ну а конкретно, деловым...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
outoftime
║XLR8║
507 / 429 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
24.12.2013, 23:50     std::regex - всегда выдает "NO!" #2
У меня примеры с документации падают (:
http://en.cppreference.com/w/cpp/regex/regex_search
http://www.cplusplus.com/reference/regex/regex_search/
outoftime
║XLR8║
507 / 429 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
24.12.2013, 23:50     std::regex - всегда выдает "NO!" #3
Компилириется нормально, при запуске падет.
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
24.12.2013, 23:50  [ТС]     std::regex - всегда выдает "NO!" #4
Цитата Сообщение от outoftime Посмотреть сообщение
У меня примеры с документации падают (:
У меня тоже. Но код в первом посте не должен выбивать эксепшн
outoftime
║XLR8║
507 / 429 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
24.12.2013, 23:54     std::regex - всегда выдает "NO!" #5
http://www.compileonline.com/compile_cpp11_online.php также падает на примерах (:

Добавлено через 59 секунд
Кода я использовал regexp с Qt все было нормально, попробую посмотреть в чем разница.
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
25.12.2013, 00:00  [ТС]     std::regex - всегда выдает "NO!" #6
Цитата Сообщение от outoftime Посмотреть сообщение
http://www.compileonline.com/compile_cpp11_online.php также падает на примерах (:
Так там же GCC 4.7.2. Старый уже) Он только с 4.8.0 и позднее адекватно поддерживает 14882:2011

Добавлено через 2 минуты
Цитата Сообщение от outoftime Посмотреть сообщение
Кода я использовал regexp с Qt все было нормально, попробую посмотреть в чем разница.
C Qt (QRegExp) все нормально работает.
У меня просто функция, которая парсит входные данные и часто вызывается на строках, которые могут быть до нескольких гигабайт (sic!) величиной. Хотел большей производительности, чтобы не вмешивать Qt в эту чисто С/С++-ную функцию, а тут такая ****
outoftime
║XLR8║
507 / 429 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
25.12.2013, 00:05     std::regex - всегда выдает "NO!" #7
http://en.cppreference.com/w/cpp/reg...ax_option_type попробуй этот пример, у тебя также вывод пустой?

Добавлено через 1 минуту
Цитата Сообщение от gromo Посмотреть сообщение
Так там же GCC 4.7.2. Старый уже) Он только с 4.8.0 и позднее адекватно поддерживает 14882:2011
Прикол в том у меня на ноуте 4.8.1 стоит и падает с той же ошибкой.
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
25.12.2013, 00:11  [ТС]     std::regex - всегда выдает "NO!" #8
Цитата Сообщение от outoftime Посмотреть сообщение
http://en.cppreference.com/w/cpp/reg...ax_option_type попробуй этот пример, у тебя также вывод пустой?
да((

Добавлено через 2 минуты
Что за бред такой, ждем 2014 года я так понял. Но курсовую здавать уже через несколько месяцев, так что не вариант. Что ж, буду Qt подмешивать, что поделаешь
outoftime
║XLR8║
507 / 429 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
25.12.2013, 00:27     std::regex - всегда выдает "NO!" #9
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52719
http://gcc.gnu.org/onlinedocs/libstd...tatus.iso.2011
На сколько я понял regex еще не поддерживается полностью.

28 Regular expressions
28.1 General N
28.2 Definitions N
28.3 Requirements N
28.4 Header <regex> synopsis N
28.5 Namespace std::regex_constants Y
28.6 Class regex_error Y
28.7 Class template regex_traits Partial
28.8 Class template basic_regex Partial
28.9 Class template sub_match Partial
28.10 Class template match_results Partial
28.11 Regular expression algorithms N
28.12 Regular expression Iterators N
28.13 Modified ECMAScript regular expression grammar N

Добавлено через 1 минуту
Ахаха, только заметил, они самое главное сделали: "28.6 Class regex_error Y" а остальное потом доделается (:

Добавлено через 1 минуту
Не знаешь, boost быстрее за QRegExp?

Добавлено через 6 минут
Судя по http://en.wikipedia.org/wiki/Compari...ession_engines Qt уступает boost. Один + поддержка UTF-16
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
25.12.2013, 00:39  [ТС]     std::regex - всегда выдает "NO!" #10
Цитата Сообщение от outoftime Посмотреть сообщение
На сколько я понял regex еще не поддерживается полностью.
таки да.

Не по теме:

Интересно, кто-нибудь поддерживает в полной мере с++11?



Добавлено через 2 минуты
Цитата Сообщение от outoftime Посмотреть сообщение
Ахаха, только заметил, они самое главное сделали: "28.6 Class regex_error Y" а остальное потом доделается (:
и пространство имен с константами тоже заделали

Добавлено через 8 минут
outoftime, а boost regex тянет за собой либу, или там достаточно хедер заинклудить?
outoftime
║XLR8║
507 / 429 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
25.12.2013, 00:49     std::regex - всегда выдает "NO!" #11
https://blog.qt.digia.com/blog/2009/...-qtboostregex/ да, Qt совсем не вариант. По ходу boost остается.

Судя по тому что говорят люди надо протестировать производительность на разных примерах. Regexp вроде можно компилировать, тогда они реже выполняются. Я бы рыл в сторону boost-a.

Добавлено через 8 минут
По поводу c++11 & regex, я так понимаю это проблема с библиотекой а не компилятором. Просто я смотрел статус clang там вообще нету поддержки regex в lang features, с чего я сделал вывод что проблема в библиотеке. http://clang.llvm.org/cxx_status.html
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
25.12.2013, 00:52  [ТС]     std::regex - всегда выдает "NO!" #12
boost regex тянет за собой либу, или там достаточно хедер включить?
outoftime
║XLR8║
507 / 429 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
25.12.2013, 00:56     std::regex - всегда выдает "NO!" #13
http://stackoverflow.com/questions/4...ost-in-windows вот обсуждение на стекоферфлоу, смотри пока модеры не удалили (:

Я с boost-ом не знаком, я пол часа на нем писал всего (: niXman довольно плотно с ней работал, отпиши ему, может поможет.
DiffEreD
1429 / 766 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
25.12.2013, 00:59     std::regex - всегда выдает "NO!" #14
Надо либу подключать.

Добавлено через 1 минуту
И да, std::regex еще не допилен. Все пользуются boost

Добавлено через 1 минуту
std::regex походу в студии работает, - надо проверять.
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
25.12.2013, 01:05  [ТС]     std::regex - всегда выдает "NO!" #15
outoftime,
The only Boost libraries that must be built separately are:

Boost.Chrono
Boost.Context
Boost.Filesystem
Boost.GraphParallel
Boost.IOStreams
Boost.Locale
Boost.MPI
Boost.ProgramOptions
Boost.Python (see the Boost.Python build documentation before building and installing it)
Boost.Regex
Boost.Serialization
Boost.Signals
Boost.System
Boost.Thread
Boost.Timer
Boost.Wave
Добавлено через 4 минуты
Цитата Сообщение от DiffEreD Посмотреть сообщение
std::regex походу в студии работает, - надо проверять.
Уж увольте)) Студию год как забыл. Для меня удобнее Qt Creator - уж лучше я с бустом повожусь
outoftime
║XLR8║
507 / 429 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
25.12.2013, 01:08     std::regex - всегда выдает "NO!" #16
Это же хорошо (:

Добавлено через 2 минуты
Цитата Сообщение от gromo Посмотреть сообщение
Для меня удобнее Qt Creator - уж лучше я с бустом повожусь
У меня с ним очень печальный опыт, я на нем ни дебажить не научился толком ни библиотеки подключать что-бы intellisense работал. Правда он удобней студии, без спору (:
DiffEreD
1429 / 766 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
25.12.2013, 01:14     std::regex - всегда выдает "NO!" #17
outoftime, библиотеки буста можно легко подключать таким образом
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
INCLUDEPATH +=  $(BOOST_ROOT) #BOOST_ROOT must be in Path
BOOST = $(BOOST_ROOT)
 
COMPILER_SHORT = mgw48
BOOST_VER = 1_55
 
CONFIG(debug, debug|release) {
BOOST_SUFFIX = $${COMPILER_SHORT}-mt-sd-$${BOOST_VER}
} else {
BOOST_SUFFIX = $${COMPILER_SHORT}-mt-s-$${BOOST_VER}
}
 
LIBS += -L$${BOOST}/stage/lib
 
#// now you can add your libraries, e.g.
LIBS += -lboost_system-$${BOOST_SUFFIX}
 
LIBS += -lboost_filesystem-$${BOOST_SUFFIX}
 
LIBS += -lboost_regex-$${BOOST_SUFFIX}
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
25.12.2013, 01:18  [ТС]     std::regex - всегда выдает "NO!" #18
Цитата Сообщение от outoftime Посмотреть сообщение
У меня с ним очень печальный опыт, я на нем ни дебажить не научился толком ни библиотеки подключать что-бы intellisense работал. Правда он удобней студии, без спору (:
А что насчет дебаггера? В чем проблема была?
Для навигации мне было достаточно включить только заголовочный файл и все идет.
Правда только некоторые вещи из С++11 не дополняет, например, std:: placeholders, явное указание возвращаемого значения лямбды подчеркивает как ошибку, еще что-то... Недавно даже тему создавал на этот счет, так и не решили(

Добавлено через 3 минуты
Цитата Сообщение от DiffEreD Посмотреть сообщение
библиотеки буста можно легко подключать таким образом
Цитата Сообщение от DiffEreD Посмотреть сообщение
LIBS += -L$${BOOST}/stage/lib
Одного INCLUDEPATH не достаточно?
DiffEreD
1429 / 766 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
25.12.2013, 01:20     std::regex - всегда выдает "NO!" #19
INCLUDEPATH для заголовков, LIBS же для библиотек
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2013, 01:26     std::regex - всегда выдает "NO!"
Еще ссылки по теме:

Что за подсказки появляются после напечатанного в коде "std" - C++
Есть 3 файла #include &lt;iostream&gt; #ifndef move_h #define move_h namespace nm_move_ { class Move__

Стоит ли использовать "Вихрь Мерсенна" (std::mt19937)? - C++
Чем он отличается от &quot;обычного&quot; stdlib'ного ГПСЧ? Генерирует ли он более... качественные ПСЧ? И зачем он вообще нужен?

Необработанное исключение в "0x76fd2eec" Microsoft C++: std::bad_alloc - C++
Вот такая ошибка в VS2008, тогда как в 2013 все работает без проблем. Если есть у кого возможность попробуйте запустить код в NetBeans'е....

Error C2039: list: не является членом "std" - C++
итак: делаю MFC проект. Собственные функции пишу в отдельном MyLibrary.cpp к которому еще прилагается MyLibrary.h. функция написана,...

Изменение отдельных символов в массиве "std::string" - C++
Добрых времени суток, форумчане! Я тут решил переписать свой криптовальщик с GML на C++ и у меня возникла следующая проблема: мне нужно в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
25.12.2013, 01:26  [ТС]     std::regex - всегда выдает "NO!" #20
Цитата Сообщение от DiffEreD Посмотреть сообщение
INCLUDEPATH для заголовков, LIBS же для библиотек
что-то я совсем засиделся) надо проветриться
Yandex
Объявления
25.12.2013, 01:26     std::regex - всегда выдает "NO!"
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru