Сообщение Re[3]: std::find_if<reference, predicate> можно? от 23.03.2015 16:17
Изменено 23.03.2015 16:24 watchmaker
Здравствуйте, B0FEE664, Вы писали:
BFE>Здравствуйте, watchmaker, Вы писали:
BFE>>>Является ли следующий код валидным?
W>>Не является, если под валидностью подразумевается, что код скомпилируется и что после вызова find_if возвращённое значение совпадёт со значением it.
BFE>И почему значение может не совпадать?
Нет, давай лучше ты сначала расскажешь, почему считаешь, что оно должно совпадать :)
Я вот не вижу в стандарте ни единого основания для такой уверенности. Это, разумеется, если смотреть как описан алгоритм find_if в стандарте, а не в художественном изложении на всяких сайтах в интернете вроде cplusplus.com
BFE>Здравствуйте, watchmaker, Вы писали:
BFE>>>Является ли следующий код валидным?
W>>Не является, если под валидностью подразумевается, что код скомпилируется и что после вызова find_if возвращённое значение совпадёт со значением it.
BFE>И почему значение может не совпадать?
Нет, давай лучше ты сначала расскажешь, почему считаешь, что оно должно совпадать :)
Я вот не вижу в стандарте ни единого основания для такой уверенности. Это, разумеется, если смотреть как описан алгоритм find_if в стандарте, а не в художественном изложении на всяких сайтах в интернете вроде cplusplus.com
Re[3]: std::find_if<reference, predicate> можно?
Здравствуйте, B0FEE664, Вы писали:
BFE>Здравствуйте, watchmaker, Вы писали:
BFE>>>Является ли следующий код валидным?
W>>Не является, если под валидностью подразумевается, что код скомпилируется и что после вызова find_if возвращённое значение совпадёт со значением it.
BFE>И почему значение может не совпадать?
Нет, давай лучше ты сначала расскажешь, почему считаешь, что оно должно совпадать :)
Я вот не вижу в стандарте ни единого основания для такой уверенности. Это, разумеется, если смотреть как описан алгоритм find_if в стандарте, а не в художественном изложении на всяких сайтах в интернете вроде cplusplus.com. На последнем, например, написано, что поведение функции эквивалентно некой представленной реализации, хотя на самом деле такого требования нет и на практике реализация как раз отличается. Причём часть отличий как раз затрагивает процесс копирования итераторов. Хотя для равенства it и возвращаемого занчения важна детерминистичность этого процесса.
BFE>Здравствуйте, watchmaker, Вы писали:
BFE>>>Является ли следующий код валидным?
W>>Не является, если под валидностью подразумевается, что код скомпилируется и что после вызова find_if возвращённое значение совпадёт со значением it.
BFE>И почему значение может не совпадать?
Нет, давай лучше ты сначала расскажешь, почему считаешь, что оно должно совпадать :)
Я вот не вижу в стандарте ни единого основания для такой уверенности. Это, разумеется, если смотреть как описан алгоритм find_if в стандарте, а не в художественном изложении на всяких сайтах в интернете вроде cplusplus.com. На последнем, например, написано, что поведение функции эквивалентно некой представленной реализации, хотя на самом деле такого требования нет и на практике реализация как раз отличается. Причём часть отличий как раз затрагивает процесс копирования итераторов. Хотя для равенства it и возвращаемого занчения важна детерминистичность этого процесса.