نتائج غريبة عند استخدام سي 1 11 التعبير العادي مع دول مجلس التعاون الخليجي 4.8.2 (ولكن يعمل مع تعزيز التعبير العادي) [مكررة]
سؤال
حاولت استخدام التعبير العادي سي 1 11 لكنه فشل حتى في أمثلة تافهة.من الخارج ، يبدو أنه يقارن السلاسل فقط ، على سبيل المثال:
std::regex_match(std::string{""}, std::regex{"a?"}) // false (???)
std::regex_match(std::string{"a?"}, std::regex{"a?"}) // true (???)
في المقابل ، تتصرف مكتبة التعبير العادي دفعة كما كنت أتوقع:
boost::regex_match(std::string{""}, boost::regex{"a?"}) // true (OK)
boost::regex_match(std::string{"a?"}, boost::regex{"a?"}) // false (OK)
اختبرت مع غك 4.8.2 و رنة 3.4 (أيضا باستخدام مكتبة ستل غك).إما أن المكتبة معطلة ، أو لا أفهم بناء الجملة المحدد بواسطة معيار سي 1 11.
المحلول
انها غير معتمدة في دول مجلس التعاون الخليجي 4.8.x.تحقق من إدخال بوجزيلا المقابل:
على وجه التحديد:"الآن يتم تنفيذ التعبير العادي.يجب أن تأتي مع دول مجلس التعاون الخليجي 4.9:)"
لا تنتمي إلى StackOverflow