Ускорение вычислений при перегрузке бинарных операторов (комментарии)
Это сообщение сгенерировано автоматически.
Народ, подскажите, как эта техника называется по-научному ?
Я название подправлю.
Мне на дают прочитать :(
По что там хоть?
Пофиксил права доступа.
Nikopol
http://ru.wikipedia.org/wiki/Отложенные_вычисления ?
Конкретно для C++, Expression Templates
http://ubiety.uwaterloo.ca/~tveldhui/papers/Expression-Templates/exprtmpl.html
Больше похоже на избавление от лишних конструкторов.
разве современные компиляторы это не оптимизируют?
не проще ли сделать функцию matrix& sum(matrix& M,const matrix& A,const matrix& B)?
композиция, а объекты порожденные для откладывания вычислений объектами замыкающими композицию или просто композиторами
jaxon
> не проще ли сделать функцию matrix& sum(matrix& M,const matrix& A,const matrix& B)?
Кому как.
Многим операторная форма записи кажется намного наглядней.
Ugin
Тема не раскрыта, нужно было написать по подробнее про template expressions.
jaxon
> разве современные компиляторы это не оптимизируют?
Нет, это ведь не элементарные операции. Чтобы такие вещи оптимизировать, нужно различные свойства функций (кода) проверять.
> не проще ли сделать функцию matrix& sum(matrix& M,const matrix& A,const matrix&
> B)?
Не проще. Если всегда так писать, то код превратиться черти во что. Читать такой код очень неудобно. Выражения то могут быть ещё и составными.
PS Гораздо интереснее было бы прочитать статью об оптимизации именно составных выражений без промежуточного копирования.
001
> Ugin
> Тема не раскрыта, нужно было написать по подробнее про template expressions.
Думаю он тебе не ответит.
Он в последний раз заходил на форум в 2005 году :)
Nikopol
> Думаю он тебе не ответит.
> Он в последний раз заходил на форум в 2005 году :)
Он умер?
RVO разве не решает эту проблему?
Вероятно, на момент написания статьи не все компиляторы подерживали RVO, как и сейчас не все держат NRVO.
ИМХО подсказка мимо...
jaxon
> разве современные компиляторы это не оптимизируют?
Нормальный компилятор всё пучком сделает...
001
> Нет, это ведь не элементарные операции. Чтобы такие вещи оптимизировать, нужно
> различные свойства функций (кода) проверять.
Да всё ок будет...
du_hast
> RVO разве не решает эту проблему?
+1
asm
> Вероятно, на момент написания статьи не все компиляторы подерживали RVO, как и
> сейчас не все держат NRVO.
Это в каком таком году до нашей эры надо было написать подсказку? Студия 2005 100% поддерживает, а уж 4 года прошло с тех пор...
Пруф: http://msdn.microsoft.com/en-us/library/ms364057.aspx
Тема в архиве.