А мне симпатична точка зрения:
* Добро всегда побеждает зло, потому что то, что победило, и есть добро (с) не помню
И по аналогии уже свое
* В мире царит справедливость, просто потому что то, как сейчас устроен мир - это и есть справедливость
Как-то так
Хотя я не слишком копался, насколько может быть такая точка зрения верна, но по крайней мере по ней можно-таки определить, что есть добро и справедливость, а то обычно у каждого свои понятия.
Чтобы уж своей практикой выпендриться, вы бы ещё написали, что сейчас под экстази называют не МДМА, а смесь разных веществ, лишь бы в таблетках. Там МДМА может вообще не быть, ага.
Видимо не так поняли друг друга.
В вашем коде с IntVector будет копирование после возврата из функции gen().
Такие тривиальные случаи, в прицнипе, компилятор сможет оптимизировать, но не всегда.
В случае же с rvalue ссылкой мы точно знаем, что переданный объект - временный, его можно безболезненно менять и убивать. Т.е., вектор просто в этом конструкторе напишет:
vector(vector && other) { swap(other); }
Т.е. обойдёмся только заменой пары указателей, вместо копирования.
Сейчас приходится полагаться на компилятор, который должен догадаться, что переменная временная, что ей инициализуется объект и т.п., в сложных случаях он и этого не сможет, поэтому часто делают так, как я написал в предыдущем посте третьим куском кода.
Ну да, в принципе, их для таких ситуаций и придумали, хотя есть и другие случаи.
Но в любом случае, как Страуструп сам говорил (или не он?), что язык используют далеко не всегда так, как задумывал создатель. Мало ли, для чего их ещё могут применить, но даже такое знание, что объект временный и его можно убить - очень полезно, по-моему.
Второй вариант бессмысленный, а третий используют сейчас. Но согласитесь, что первый выглядит куда лучше. Более того, если покапаться, можно найти другие примеры, где третий вариант не подойдёт (в каких-нибудь шаблонных ситуациях, когда различить, какой вариант сработает - сложно, или невозможно, или если нет конструктора по умолчанию и т.п.)
List comprehensions рулят уже очень давно.
Их упростили для понимания, адаптировали под .Net и добавили :)
Возможности же, действительно очень большие.
Поставил бы плюс, если б мог :)
Тоже нравится область, но вот Майндстормс какой-то уж слишком ограниченный... Хотя для начала, мб, и этого хватит, поиграться.
У меня страница 610, 4-е слово сверху
Проецировать - произвести (-водить) проекцию. сов. также спроецировать.
Но само предложение верное.
* Добро всегда побеждает зло, потому что то, что победило, и есть добро (с) не помню
И по аналогии уже свое
* В мире царит справедливость, просто потому что то, как сейчас устроен мир - это и есть справедливость
Как-то так
Хотя я не слишком копался, насколько может быть такая точка зрения верна, но по крайней мере по ней можно-таки определить, что есть добро и справедливость, а то обычно у каждого свои понятия.
Или телевизор и компьютер по каким-то критериям для вас считаются менее "страшными" девайсами? По каким?
Я сам то же самое подумал.
"Теин — устаревшее название кофеина, входящего в состав чая"
В вашем коде с IntVector будет копирование после возврата из функции gen().
Такие тривиальные случаи, в прицнипе, компилятор сможет оптимизировать, но не всегда.
В случае же с rvalue ссылкой мы точно знаем, что переданный объект - временный, его можно безболезненно менять и убивать. Т.е., вектор просто в этом конструкторе напишет:
vector(vector && other) { swap(other); }
Т.е. обойдёмся только заменой пары указателей, вместо копирования.
Сейчас приходится полагаться на компилятор, который должен догадаться, что переменная временная, что ей инициализуется объект и т.п., в сложных случаях он и этого не сможет, поэтому часто делают так, как я написал в предыдущем посте третьим куском кода.
Но в любом случае, как Страуструп сам говорил (или не он?), что язык используют далеко не всегда так, как задумывал создатель. Мало ли, для чего их ещё могут применить, но даже такое знание, что объект временный и его можно убить - очень полезно, по-моему.
Т.е. вы предлагаете вместо:
Писать:
?
Или так:
Второй вариант бессмысленный, а третий используют сейчас. Но согласитесь, что первый выглядит куда лучше. Более того, если покапаться, можно найти другие примеры, где третий вариант не подойдёт (в каких-нибудь шаблонных ситуациях, когда различить, какой вариант сработает - сложно, или невозможно, или если нет конструктора по умолчанию и т.п.)
Но почему-то огромное число людей понимают, а вы не понимаете.
Их упростили для понимания, адаптировали под .Net и добавили :)
Возможности же, действительно очень большие.
Тоже нравится область, но вот Майндстормс какой-то уж слишком ограниченный... Хотя для начала, мб, и этого хватит, поиграться.