نتائج غريبة عند استخدام سي 1 11 التعبير العادي مع دول مجلس التعاون الخليجي 4.8.2 (ولكن يعمل مع تعزيز التعبير العادي) [مكررة]

StackOverflow https://stackoverflow.com//questions/20027305

سؤال

حاولت استخدام التعبير العادي سي 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.تحقق من إدخال بوجزيلا المقابل:

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631

على وجه التحديد:"الآن يتم تنفيذ التعبير العادي.يجب أن تأتي مع دول مجلس التعاون الخليجي 4.9:)"

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top