S
shisik
Сейчас столкнулся со странность в компиляторе g++. Есть некоторый класс для работы с регулярными выражениеми. Переменная regExp - экземпляр этого класса. Программа проверяет строку на соответствие некоторому шаблону, выделяет из неё две подстроки и выводит их на экран следующим образом:
Но при этом выводится два раза первое соответствие (206 206 в моём случае, хотя должно быть 206 Partial Content). Я сначала думал, что ошибка в классе или в шаблоне, но потом обнаружил забавную вещь: если изменить код таким образом
ну т.е. разбить код на две строки, то выводятся две разные подстроки, как это и должно быть (206 Partial Content). Т.е. класс и шаблон нормальные, проблема по всей видимости в компиляторе, когда вместо вызова метода с параметром 2, он второй раз вызывается с параметром 1. Или же эта такая фича?
Компилятор используется g++ версии 4.4.5; ОС - Gentoo amd64. При компиляции именно этого проекта оптимизации выключены. При сборке софта проблем никогда не возникало, а собрал я немало, как видно из названия ОС А вот сейчас столкнулся с такой странностью. Это не сильно важно с практической точки зрения, но если это фича, то о ней хотелось бы узнать побольше.
Кто-нибудь знает, в чём причина? Заранее спасибо.
C++:
std::cout << regExp.GetMatch(1) << ' ' << regExp.GetMatch(2) << std::endl;
Но при этом выводится два раза первое соответствие (206 206 в моём случае, хотя должно быть 206 Partial Content). Я сначала думал, что ошибка в классе или в шаблоне, но потом обнаружил забавную вещь: если изменить код таким образом
C++:
std::cout << regExp.GetMatch(1) << ' ';
std::cout << regExp.GetMatch(2) << std::endl;
ну т.е. разбить код на две строки, то выводятся две разные подстроки, как это и должно быть (206 Partial Content). Т.е. класс и шаблон нормальные, проблема по всей видимости в компиляторе, когда вместо вызова метода с параметром 2, он второй раз вызывается с параметром 1. Или же эта такая фича?
Компилятор используется g++ версии 4.4.5; ОС - Gentoo amd64. При компиляции именно этого проекта оптимизации выключены. При сборке софта проблем никогда не возникало, а собрал я немало, как видно из названия ОС А вот сейчас столкнулся с такой странностью. Это не сильно важно с практической точки зрения, но если это фича, то о ней хотелось бы узнать побольше.
Кто-нибудь знает, в чём причина? Заранее спасибо.