std::match_results<BidirIt,Alloc>::ready
bool ready() const; | (начиная с C++11) |
Указывает, готовы ли (действительны ли) результаты сопоставления.
Результат сопоставления, созданный конструктором по умолчанию, не имеет состояния результата (не является готовым) и может быть приведён в состояние готовности только одним из алгоритмов регулярных выражений. Состояние готовности означает, что все результаты сопоставления полностью сформированы.
Результат вызова большинства функций-членов объекта match_results, который не находится в состоянии готовности, не определён.
Возвращаемое значение
true, если результаты сопоставления готовы, и false в противном случае.
Пример
#include <iostream>
#include <regex>
#include <string>
int main()
{
std::string target("big-red-cat");
std::smatch sm;
std::cout << "Default constructed smatch is "
<< (sm.ready() ? "ready.\n" : "not ready.\n");
std::regex re1(".*-red-.*");
std::regex_search(target, sm, re1);
std::cout << "After search, smatch is "
<< (sm.ready() ? "ready.\n" : "not ready.\n");
}
Вывод:
Default constructed smatch is not ready. After search, smatch is ready.
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/regex/match_results/ready