Сообщение Re[7]: Возврат ошибок из недр вложенных вызовов от 05.11.2020 20:03
Изменено 05.11.2020 20:48 so5team
Re[7]: Возврат ошибок из недр вложенных вызовов
Здравствуйте, Евгений Музыченко, Вы писали:
EM>Как туда можно прикрутить move-семантику, я в принципе не представляю. Если знаете секрет — поделитесь, пожалуйста.
Может как-то так, если уж вы принципиально не включаете оптимизацию в компиляторе:
Но для современных компиляторов этот явный move в точке (2) -- это как раз принудительная пессимизация. А move в точке (1) не имеет смысла.
S>>Так вы мало того, что рил-тайм код в отладчике умудряетесь пошагово отлаживать
ЕМ>Я уже объяснил, что не весь реалтайм, а только соответствующие части. Что именно Вас в этом удивляет?
Удивляет, что есть человек, который может пошагово отлаживать реалтаймовый код в отладчике.
S>>так еще и одним взглядом определяете во что современные шаблонные кружева транслируются?
ЕМ>"Современные шаблонные кружева" как-то влияют на алгоритмы кодогенерации, и есть примеры, когда для шаблонного класса создается более эффективный код, чем для эквивалентного нешаблонного?
Современные шаблонные кружева влияют на то, что видит человек в коде. Там может быть шаблонный класс, который наследуется от кучи других шаблонных классов, которые для какого-то случая имеют специализации и все это схлопывается во что-то благодаря empty base optimization.
Вы, походу, все это можете увидеть просто глазом. Впрочем, если вам под силу пошагово отлаживать реалтаймовый код, то вам и это по плечу.
S>>Реальное время -- оно же такое, не критичное.
ЕМ>Вы твердо уверены в том, что правильно и полностью понимаете смысл понятия "реальное время"?
До ваших откровений был уверен. Но теперь сильно сомневаюсь.
EM>Как туда можно прикрутить move-семантику, я в принципе не представляю. Если знаете секрет — поделитесь, пожалуйста.
Может как-то так, если уж вы принципиально не включаете оптимизацию в компиляторе:
std::vector<std::string> child() {...}
std::vector<std::string> parent() {
...
auto r = std::move(child()); // (2)
...
return std::move(r); // (1)
}Но для современных компиляторов этот явный move в точке (2) -- это как раз принудительная пессимизация. А move в точке (1) не имеет смысла.
S>>Так вы мало того, что рил-тайм код в отладчике умудряетесь пошагово отлаживать
ЕМ>Я уже объяснил, что не весь реалтайм, а только соответствующие части. Что именно Вас в этом удивляет?
Удивляет, что есть человек, который может пошагово отлаживать реалтаймовый код в отладчике.
S>>так еще и одним взглядом определяете во что современные шаблонные кружева транслируются?
ЕМ>"Современные шаблонные кружева" как-то влияют на алгоритмы кодогенерации, и есть примеры, когда для шаблонного класса создается более эффективный код, чем для эквивалентного нешаблонного?
Современные шаблонные кружева влияют на то, что видит человек в коде. Там может быть шаблонный класс, который наследуется от кучи других шаблонных классов, которые для какого-то случая имеют специализации и все это схлопывается во что-то благодаря empty base optimization.
Вы, походу, все это можете увидеть просто глазом. Впрочем, если вам под силу пошагово отлаживать реалтаймовый код, то вам и это по плечу.
S>>Реальное время -- оно же такое, не критичное.
ЕМ>Вы твердо уверены в том, что правильно и полностью понимаете смысл понятия "реальное время"?
До ваших откровений был уверен. Но теперь сильно сомневаюсь.
Re[7]: Возврат ошибок из недр вложенных вызовов
Здравствуйте, Евгений Музыченко, Вы писали:
EM>Как туда можно прикрутить move-семантику, я в принципе не представляю. Если знаете секрет — поделитесь, пожалуйста.
Может как-то так, если уж вы принципиально не включаете оптимизацию в компиляторе:
Но для современных компиляторов этот явный move в точке (2) -- это как раз принудительная пессимизация. А move в точке (1) не имеет смысла.
S>>Так вы мало того, что рил-тайм код в отладчике умудряетесь пошагово отлаживать
ЕМ>Я уже объяснил, что не весь реалтайм, а только соответствующие части. Что именно Вас в этом удивляет?
Удивляет, что есть человек, который может пошагово отлаживать реалтаймовый код в отладчике.
S>>так еще и одним взглядом определяете во что современные шаблонные кружева транслируются?
ЕМ>"Современные шаблонные кружева" как-то влияют на алгоритмы кодогенерации, и есть примеры, когда для шаблонного класса создается более эффективный код, чем для эквивалентного нешаблонного?
Современные шаблонные кружева влияют на то, что видит человек в коде. Там может быть шаблонный класс, который наследуется от кучи других шаблонных классов, которые для какого-то случая имеют специализации и все это схлопывается во что-то благодаря empty base optimization.
Вы, походу, все это можете увидеть просто глазом. Впрочем, если вам под силу пошагово отлаживать реалтаймовый код, то вам и это по плечу.
S>>Реальное время -- оно же такое, не критичное.
ЕМ>Вы твердо уверены в том, что правильно и полностью понимаете смысл понятия "реальное время"?
До ваших откровений был уверен. Но теперь сильно сомневаюсь.
EM>Как туда можно прикрутить move-семантику, я в принципе не представляю. Если знаете секрет — поделитесь, пожалуйста.
Может как-то так, если уж вы принципиально не включаете оптимизацию в компиляторе:
std::vector<std::string> child() {...}
std::vector<std::string> parent() {
...
auto r = std::move(child()); // (1)
...
return std::move(r); // (2)
}Но для современных компиляторов этот явный move в точке (2) -- это как раз принудительная пессимизация. А move в точке (1) не имеет смысла.
S>>Так вы мало того, что рил-тайм код в отладчике умудряетесь пошагово отлаживать
ЕМ>Я уже объяснил, что не весь реалтайм, а только соответствующие части. Что именно Вас в этом удивляет?
Удивляет, что есть человек, который может пошагово отлаживать реалтаймовый код в отладчике.
S>>так еще и одним взглядом определяете во что современные шаблонные кружева транслируются?
ЕМ>"Современные шаблонные кружева" как-то влияют на алгоритмы кодогенерации, и есть примеры, когда для шаблонного класса создается более эффективный код, чем для эквивалентного нешаблонного?
Современные шаблонные кружева влияют на то, что видит человек в коде. Там может быть шаблонный класс, который наследуется от кучи других шаблонных классов, которые для какого-то случая имеют специализации и все это схлопывается во что-то благодаря empty base optimization.
Вы, походу, все это можете увидеть просто глазом. Впрочем, если вам под силу пошагово отлаживать реалтаймовый код, то вам и это по плечу.
S>>Реальное время -- оно же такое, не критичное.
ЕМ>Вы твердо уверены в том, что правильно и полностью понимаете смысл понятия "реальное время"?
До ваших откровений был уверен. Но теперь сильно сомневаюсь.