![]() |
Пред. тема | След. тема | ||
Форум Разговоры, обсуждение новостей | |||
---|---|---|---|
Изначальное сообщение | [ Отслеживать ] |
"Анализ влияния ключевого слова final на производительность программ C++" | +/– | ![]() |
Сообщение от opennews (??), 23-Апр-24, 14:15 | ||
Бенджамин Саммертон (Benjamin Summerton), автор системы трассировки лучей PSRayTracing, проанализировал влияние на производительность приложений использование в коде на языке С++ ключевого слова "final", появившегося в стандарте C++11. Причиной проведения тестирования послужили витающие в сети заявления, что использование "final" позволяет повысить производительность, которые ограничивались оценочными суждениями без указания результатов изменений... | ||
Ответить | Правка | Cообщить модератору |
Оглавление |
Сообщения | [Сортировка по ответам | RSS] |
1.
Сообщение от Аноним![]() | +3 +/– | ![]() |
А люди из интернета точно использовали final именно там, где нужно, а не везде его тыкали? | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #2, #3, #4, #8 |
2. Сообщение от Аноним (2), 23-Апр-24, 14:24 | +20 +/– | ![]() |
Это был финальный комментарий или компилятор заглючил? | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #1 |
3. Сообщение от Аноним (3), 23-Апр-24, 14:32 | +3 +/– | ![]() |
> а не просто "взял и поставил final на структурку или класс, потому что от нее никто не будет наследоваться". | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #1 |
4. Сообщение от Аноним (4), 23-Апр-24, 14:39 | +/– | ![]() |
И как я вызову виртуальный метод, если у меня final стоит на самом первом классе? | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #1 |
5. Сообщение от Rev (?), 23-Апр-24, 14:39 | +1 +/– | ![]() |
> Для себя автор исследования сделал вывод о необходимости избегать использованиЯ "final". | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #9, #77 |
6. Сообщение от Sw00p aka Jerom (?), 23-Апр-24, 14:41 | –4 +/– | ![]() |
в гцц ИИ еще не пихнули? :) | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #57 |
8. Сообщение от Аноним (8), 23-Апр-24, 14:43 | +3 +/– | ![]() |
final как раз нужен для класса с реализацией интерфейса. А числа автора показывают, что в основном ничего не меняется за искл забагованного clang-а | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #1 |
9. Сообщение от Аноним (8), 23-Апр-24, 14:45 | +10 +/– | ![]() |
final это не метод оптимизации, а защита от гогнокода, особенно при работе в больших командах и в публичном коде | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #5 Ответы: #56 |
11. Сообщение от Аноним (11), 23-Апр-24, 14:50 | +4 +/– | ![]() |
А вообще каким боком final влияет на производительность кода? Он же нужен исключительно чтобы бить по рукам, не более того. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #16, #50 |
12. Сообщение от Аноним (12), 23-Апр-24, 15:00 | –1 +/– | ![]() |
Что-то я не вижу AOCC и ICC в тестах. Именно они были бы актуальными для соответствующих процессоров. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #14 |
14. Сообщение от Ivan7 (ok), 23-Апр-24, 15:10 | +4 +/– | ![]() |
ICC давно уже сдох, вернее, его придушили. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #12 Ответы: #105 |
15. Сообщение от Бывалый Смузихлёб (ok), 23-Апр-24, 15:23 | –7 +/– | ![]() |
> ключевого слова "final" [EN.cppreference.com/w/cpp/language/final] | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #18, #37, #73 |
16. Сообщение от Аноним (16), 23-Апр-24, 15:25 | +12 +/– | ![]() |
Поскольку нет наследников -> нет нужды смотреть в vtable -> можно дёргать методы напрямую, минуя виртуализаию | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #11 Ответы: #24, #60, #81 |
18. Сообщение от Я (??), 23-Апр-24, 15:41 | +1 +/– | ![]() |
какой плюсовик умеет читать документацию не на английском? | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #15 Ответы: #41 |
19. Сообщение от Швондик (?), 23-Апр-24, 15:41 | +3 +/– | ![]() |
иногда можно повысить производительность до 70% если для выхода из сложных циклов использовать оператор goto | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #20, #23, #42, #63 |
20. Сообщение от Аноним (20), 23-Апр-24, 16:00 | +6 +/– | ![]() |
а если использовать выход в первой строчке проги, производительность ещё сильнее повысится! | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #19 Ответы: #21 |
21. Сообщение от Аноним (21), 23-Апр-24, 16:18 | +4 +/– | ![]() |
Нет, не повысится. Время исполнения уменьшится, но работа, выполненная за это время, будет равна нулю. Итого общая производительность тоже будет равна нулю — программа не делает ничего полезного для изначальной задачи, если только изначально не было цели сразу выходить. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #20 Ответы: #39 |
22. Сообщение от Пряник (?), 23-Апр-24, 16:19 | +3 +/– | ![]() |
Требуется сравнительный анализ кода на ассемблере. А так это гадание на /dev/random. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #31, #78 |
23. Сообщение от Аноним (-), 23-Апр-24, 16:20 | –3 +/– | ![]() |
> повысить производительность до 70% | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #19 Ответы: #27, #30 |
24. Сообщение от Пряник (?), 23-Апр-24, 16:22 | +1 +/– | ![]() |
Ты умнее Бенджамина Саммертона. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #16 Ответы: #55 |
25. Сообщение от Пряник (?), 23-Апр-24, 16:24 | +/– | ![]() |
Впрочем тесты "с потолка" тоже полезны. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
26. Сообщение от Серб (ok), 23-Апр-24, 16:26 | +1 +/– | ![]() |
> Для себя автор исследования сделал вывод о необходимости избегать использование "final". | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
27. Сообщение от Аноним (27), 23-Апр-24, 16:26 | +1 +/– | ![]() |
спагетти* | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #23 |
28. Сообщение от Аноним (28), 23-Апр-24, 16:27 | +/– | ![]() |
Странный выбор у девелопера из опенсорса: промежуточный девелопмент релиз дистрибутива и MS компилятор. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #34 |
30. Сообщение от Швондик (?), 23-Апр-24, 16:33 | –6 +/– | ![]() |
да я просто пошутил, у нас за goto сразу увольняют если увидят в коде | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #23 Ответы: #38, #46, #65 |
31. Сообщение от Sw00p aka Jerom (?), 23-Апр-24, 16:35 | +/– | ![]() |
Требуется сравнительный анализ разработчиков всех этих компиляторов, стандарт языка вроде один, архитектура машинных команд вроде одна, оптимизации одни и те же, ток результирующий исполняемый код почему-то разный. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #22 Ответы: #36, #44, #66 |
34. Сообщение от голос из леса (?), 23-Апр-24, 16:48 | +2 +/– | ![]() |
стандартный "девелопер из опенсорс" с вероятностью 50% сидит на mac os, с вероятностью 40% на win. Остатки может и на linux. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #28 Ответы: #45 |
35. Сообщение от Аноним (35), 23-Апр-24, 17:02 | +6 +/– | ![]() |
> Причиной проведения тестирования послужили витающие в сети заявления, что использование "final" позволяет повысить производительность, которые ограничивались оценочными суждениями без указания результатов изменений. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #79 |
36. Сообщение от Пряник (?), 23-Апр-24, 17:20 | +1 +/– | ![]() |
Я это и сказал. Компилятор выдаёт на выходе код ассемблера сначала перед тем, как конвертировать в машинный. Код ассемблера и машинный равны примерно 1-к-1. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #31 |
37. Сообщение от Аноним (37), 23-Апр-24, 17:23 | –2 +/– | ![]() |
Из любви к русскому языку - надо. Читать перевод на русский, чтобы в голове переводить обратно на английский, попутно избавляясь от затесавшихся гуртовщиков мышей - не любить русский язык. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #15 |
38. Сообщение от Аноним (38), 23-Апр-24, 17:44 | +10 +/– | ![]() |
Значит вы в ядро не коммите | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #30 Ответы: #86 |
39. Сообщение от Аноним (20), 23-Апр-24, 17:47 | –2 +/– | ![]() |
Кто сказал, что в изначальной задаче надо было что-то делать? Полезность - это всё иллюзия. И ваще, мы - пыль в масштабах Вселенной. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #21 Ответы: #40 |
40. Сообщение от Аноним (21), 23-Апр-24, 17:52 | +/– | ![]() |
> Кто сказал, что в изначальной задаче надо было что-то делать? | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #39 |
41. Сообщение от Аноним (41), 23-Апр-24, 17:54 | +3 +/– | ![]() |
КО: русскоязычный | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #18 Ответы: #98 |
42. Сообщение от Аноним (41), 23-Апр-24, 17:56 | –1 +/– | ![]() |
>если для выхода из сложных циклов использовать оператор goto | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #19 Ответы: #48, #53 |
44. Сообщение от Аноним (41), 23-Апр-24, 17:59 | +1 +/– | ![]() |
Так повторямых сборок между Clang и g++ никто и не обещал. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #31 Ответы: #51 |
45. Сообщение от Аноним (41), 23-Апр-24, 18:02 | –1 +/– | ![]() |
Просмотрите исходники СПО-проектов. В подавляющем большинстве случаев там \0A-окончания строк. Сделайте вывод, кто на чём сидит. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #34 Ответы: #88, #90, #96, #97 |
46. Сообщение от Ivan7 (ok), 23-Апр-24, 18:04 | +10 +/– | ![]() |
За goto в C/C++ может уволить только абсолютно безграмотный чел, который никогда не кодил и не писал высокопроизводительные приложения. В некоторых случаях goto реально полезен, причём в этих случаях альтернатив ему особых нет, особенно это касается Си. А ассемблерный код вообще весь построен на тамошнем аналоге goto - jxx. Надеюсь, за jxx у вас никто никого не увольняет??? (А то тогда это совсем какая-то дикая дичайшая дичь.) | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #30 Ответы: #85 |
48. Сообщение от Аноним (48), 23-Апр-24, 18:24 | +1 +/– | ![]() |
>>если для выхода из сложных циклов использовать оператор goto | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #42 |
49. Сообщение от Аноним (49), 23-Апр-24, 18:39 | +/– | ![]() |
Странно, в тех же исходниках clang часто используется прием: | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #62, #114 |
50. Сообщение от Аноним (50), 23-Апр-24, 18:42 | –1 +/– | ![]() |
> Он же нужен исключительно чтобы бить по рукам | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #11 Ответы: #61, #94 |
51. Сообщение от Sw00p aka Jerom (?), 23-Апр-24, 18:56 | –1 +/– | ![]() |
> Так повторямых сборок между Clang и g++ никто и не обещал. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #44 Ответы: #64 |
52. Сообщение от Аноним (52), 23-Апр-24, 19:38 | +6 +/– | ![]() |
Замедление при использовании final вызывает у меня культурный шок. Реализация виртуальных методов стандартна - в объекте хранится указатель на таблицу, в таблице указатель на код. final гарантирует, что наследники не переопределяли код, поэтому чтение таблицы компилятор может иногда выкинуть. Я просто не могу представить, что должен сделать компилятор, чтобы стандартный подход стал выполняться медленней. final и override - это в основном синтаксический сахар, чтобы бить по рукам тех, кто не синхронизирует изменения методов в предках и потомках, а также помощь читающим код, чтобы было видно виртуальные методы. Реально выкидывание чтения таблицы должно происходить крайне редко, обычно везде передаётся указатель на базовый класс с виртуальными методами без реализации. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
53. Сообщение от Ivan7 (ok), 23-Апр-24, 19:40 | +3 +/– | ![]() |
А в ОО-языке циклы не нужны? | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #42 |
55. Сообщение от anonymous (??), 23-Апр-24, 20:10 | +3 +/– | ![]() |
Это не сложно. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #24 |
56. Сообщение от Аноним (56), 23-Апр-24, 20:49 | –1 +/– | ![]() |
Большие команды это где? | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #9 Ответы: #92 |
57. Сообщение от Bottle (?), 23-Апр-24, 20:53 | +6 +/– | ![]() |
Ещё бы не хватало, чтобы к коду с неопределённым и implementation-defined поведением добавились галлюцинации ИИ. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #6 Ответы: #72 |
60. Сообщение от Аноним (60), 23-Апр-24, 22:40 | +/– | ![]() |
Что-то я не понял твою мысль. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #16 Ответы: #75, #89 |
61. Сообщение от Ivan_83 (ok), 23-Апр-24, 22:41 | +/– | ![]() |
Приватные/локальные патчи рулят, минус только в накоплении "техдолга". | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #50 Ответы: #76 |
62. Сообщение от Аноним (60), 23-Апр-24, 22:44 | +1 +/– | ![]() |
final может не только с классами использоваться (запрещая их наследовать), но и для методов-членов, запрещая дочерним классам их переопределять | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #49 |
63. Сообщение от Ivan_83 (ok), 23-Апр-24, 22:44 | +/– | ![]() |
Это тонкий троллинг :) | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #19 Ответы: #74, #87 |
64. Сообщение от Аноним (64), 23-Апр-24, 22:44 | +2 +/– | ![]() |
Вот это далеко не факт... | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #51 Ответы: #67 |
65. Сообщение от Аноним (60), 23-Апр-24, 22:47 | +3 +/– | ![]() |
а за switch/case ? А за try/catch? | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #30 |
66. Сообщение от Аноним (60), 23-Апр-24, 23:06 | +1 +/– | ![]() |
Ты объем кода шланга или гцц видел? Ну ок, покажи как надо делать. Потом сравнительный анализ тебя проведем | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #31 |
67. Сообщение от Sw00p aka Jerom (?), 23-Апр-24, 23:15 | –2 +/– | ![]() |
> Вот это далеко не факт... | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #64 Ответы: #111 |
72. Сообщение от Sw00p aka Jerom (?), 23-Апр-24, 23:29 | –2 +/– | ![]() |
> Ещё бы не хватало | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #57 |
73. Сообщение от Аноним (73), 24-Апр-24, 00:09 | +/– | ![]() |
> Для упрощения процесса эта вики уже была переведена с помощью Google на ... и русский языки. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #15 |
74. Сообщение от Швондик (?), 24-Апр-24, 00:35 | +/– | ![]() |
да я просто пошутил, я вообще никогда с программистами не работал | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #63 |
75. Сообщение от Аноним (75), 24-Апр-24, 00:37 | +/– | ![]() |
Даже с MSVC не будет. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #60 Ответы: #84 |
76. Сообщение от Аноним (76), 24-Апр-24, 02:31 | +/– | ![]() |
Если эти патче не в апстриме - то твоя "FreeBSD" никакая не FreeBSD, а Ivan83BSD, которую будешь сопровождать сам, собирать сам, и использовать сам, потому что желающих ставить иваноподелки себе на комп даже в виртуалку нет. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #61 Ответы: #108 |
77. Сообщение от Аноним (77), 24-Апр-24, 04:47 | +2 +/– | ![]() |
> А опытный разработчик знает, что надо бенчмаркать свой код, и ставить final там, где бенчмарки покажут улучшение :) | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #5 |
78. Сообщение от Аноним (77), 24-Апр-24, 04:52 | +/– | ![]() |
> Требуется сравнительный анализ кода на ассемблере. А так это гадание на /dev/random. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #22 |
79. Сообщение от Аноним (77), 24-Апр-24, 04:54 | +/– | ![]() |
Вперед, Аноним. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #35 Ответы: #83, #112 |
80. Сообщение от Аноним (-), 24-Апр-24, 07:22 | –1 +/– | ![]() |
Ко там хвалил шланг? Запомните, копилефтный GCC - это эталон качества. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #82, #95 |
81. Сообщение от bOOster (ok), 24-Апр-24, 08:20 | +1 +/– | ![]() |
Хоть кто-то на опеннете знает как C++ работает. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #16 |
82. Сообщение от Аноним (82), 24-Апр-24, 08:27 | –3 +/– | ![]() |
Тормоза шлангового кода - это не баг, а фича. M$ не для того его спонсирует, чтобы тот обгонял их собственный, конкурирующий, закрытый продукт. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #80 |
83. Сообщение от Аноним (83), 24-Апр-24, 08:34 | +/– | ![]() |
он Занят разработкой Важной Программы. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #79 |
84. Сообщение от n00by (ok), 24-Апр-24, 08:36 | +/– | ![]() |
Осталось ещё убрать final и посмотреть на листинг, для полного просветления. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #75 Ответы: #91 |
85. Сообщение от n00by (ok), 24-Апр-24, 08:42 | –1 +/– | ![]() |
Некоторые и за "C/C++" увольняют, поскольку это маркер, что писавший не видит разницы. В С++ goto позволяет обойти конструкторы/деструкторы, что недопустимо. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #46 Ответы: #93 |
86. Сообщение от n00by (ok), 24-Апр-24, 08:43 | +/– | ![]() |
В ядре Си, а в теме - Си++. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #38 |
87. Сообщение от n00by (ok), 24-Апр-24, 08:46 | +/– | ![]() |
> goto полезен скорее для выхода по ошибке, | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #63 Ответы: #110 |
88. Сообщение от n00by (ok), 24-Апр-24, 08:50 | +/– | ![]() |
Ну мы так на Венде делали. Специально, для повышения качества экспертизы. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #45 |
89. Сообщение от siga (ok), 24-Апр-24, 12:18 | +2 +/– | ![]() |
придумать такой сценарий, когда ключевое слово `final` приводит к девиртуализации вызова, в принципе несложно https://godbolt.org/z/b9d7GhjxW | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #60 Ответы: #106 |
90. Сообщение от Аноним (90), 24-Апр-24, 12:36 | +/– | ![]() |
Офигеть показатель. Наверное конец строки - это штука, которую принципиально невозможно настроить в редакторе или IDE? Надо будет глянуть как там у меня под виндой в Geany и Notepad++ сделано. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #45 |
91. Сообщение от Аноним (91), 24-Апр-24, 12:40 | +1 +/– | ![]() |
Тот пример действительно не покажет эффект от `final`, если компилятор умеет запоминать тип присвоенного ссылке или указателю объекта, а не ограничивается типом самой ссылки или указателя. Куда лучше тут подходит https://godbolt.org/z/aPKxEWMz5 | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #84 Ответы: #102 |
92. Сообщение от Аноним (8), 24-Апр-24, 12:53 | +/– | ![]() |
Это там, где больше одного человека. За примерами команд >1K с общим кодом можешь, например, сходить в гугл или даже местный Яндекс. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #56 |
93. Сообщение от Аноним (93), 24-Апр-24, 14:19 | +1 +/– | ![]() |
можно пример? Чтоб именно goto обошел конструктор/деструктор, а не какой-нить setjmp | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #85 Ответы: #104 |
94. Сообщение от Аноним (94), 24-Апр-24, 14:50 | +/– | ![]() |
Privat и final действительно противоречат сути ООП т.к. мешают переиспользовать код, но с protected всё нормально. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #50 Ответы: #117 |
95. Сообщение от Аноним (95), 24-Апр-24, 22:04 | +/– | ![]() |
gcc это вендорлок | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #80 Ответы: #100 |
96. Сообщение от Электрон (?), 25-Апр-24, 07:46 | +1 +/– | ![]() |
Показательнее пример Mozilla, разработчики Firefox пользуются Chrome в качестве основного браузера, везде Гуглосервисы. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #45 |
97. Сообщение от Электрон (?), 25-Апр-24, 07:48 | +/– | ![]() |
Забыл еще написать про электронные адреса. Заглянуть в AUR - там повсеместно gmail указан. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #45 |
98. Сообщение от Aleksander256 (?), 25-Апр-24, 09:58 | +/– | ![]() |
Школьник? Не встречал взрослого плюсовика который хотябы не сможет почитать хотябы документацию на англицком языке | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #41 Ответы: #99, #103 |
99. Сообщение от Бывалый Смузихлёб (ok), 25-Апр-24, 10:43 | +/– | ![]() |
> Школьник? Не встречал взрослого плюсовика который хотябы не сможет почитать хотябы документацию | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #98 Ответы: #101 |
100. Сообщение от Аноним (100), 25-Апр-24, 11:37 | +/– | ![]() |
Я считаю это позором | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #95 |
101. Сообщение от Aleksander256 (?), 25-Апр-24, 12:55 | +/– | ![]() |
Тогда пусть ссылаются только на статьи написаные на русском языке. Даже если она устарели и актуальна. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #99 |
102. Сообщение от n00by (ok), 25-Апр-24, 13:27 | +/– | ![]() |
Подходит лучше, пока нет определения функций-членов. При lto может быть проанализирован поток исполнения и разницы не окажется. Но даже если и окажется, то главный вопрос - почему вдруг с final медленнее, а не быстрее. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #91 |
103. Сообщение от n00by (ok), 25-Апр-24, 13:29 | +/– | ![]() |
Поставим вопрос иначе: какой % плюсовиков прочитал стандарт языка? | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #98 Ответы: #109 |
104. Сообщение от n00by (ok), 25-Апр-24, 14:04 | –3 +/– | ![]() |
> можно пример? Чтоб именно goto обошел конструктор/деструктор, а не какой-нить setjmp | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #93 Ответы: #116 |
105. Сообщение от Аноним (105), 25-Апр-24, 16:52 | +/– | ![]() |
Ну С программистам виднее. Я к ним не отношусь, просто любитель. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #14 |
106. Сообщение от fuggy (ok), 25-Апр-24, 17:48 | +/– | ![]() |
Я пытался разобраться, но тут нет разницы в ассемблере между clang и gcc c final и без в первом случае. Откуда тогда разница в производительности берётся? Либо нужно более сложный кейс сравнивать. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #89 Ответы: #107 |
107. Сообщение от n00by (ok), 26-Апр-24, 06:50 | +/– | ![]() |
Мне тут другое непонятно. Автор тестов тестировал на своей библиотеке. Получил результат, вызывающий вопросы. Почему он не посмотрел асм и не нашёл ответ сам? Я в подобных случаях всегда смотрел и подчас открывал удивительные для себя вещи. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #106 |
108. Сообщение от Аноним (108), 26-Апр-24, 08:48 | +/– | ![]() |
Описал так, как будто это что-то плохое. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #76 |
109. Сообщение от Аноним (108), 26-Апр-24, 08:53 | +/– | ![]() |
Звчем? Русский или английский? | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #103 Ответы: #121 |
110. Сообщение от Аноним (108), 26-Апр-24, 09:00 | +/– | ![]() |
Использование RAII не освобождает от необходимости подчищать при выходе из цикла. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #87 Ответы: #119 |
111. Сообщение от Аноним (108), 26-Апр-24, 09:02 | +/– | ![]() |
То что утверждается без аргументов опровергается также без аргументов. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #67 Ответы: #115 |
112. Сообщение от Аноним (108), 26-Апр-24, 09:06 | +/– | ![]() |
"Сначала добейся" | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #79 |
113. Сообщение от Аноним (108), 26-Апр-24, 09:13 | +1 +/– | ![]() |
>final was placed on just about EVERY interface. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
114. Сообщение от Пряник (?), 26-Апр-24, 11:58 | –1 +/– | ![]() |
Какой же стрёмный синтаксис у плюсов... Обернули в какой-то namespace, два имени у класса, после функции какой-то override. Очень понятно. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #49 Ответы: #120 |
115. Сообщение от Sw00p aka Jerom (?), 26-Апр-24, 12:37 | +/– | ![]() |
> То что утверждается без аргументов опровергается также без аргументов. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #111 |
116. Сообщение от Ivan7 (ok), 26-Апр-24, 16:12 | +1 +/– | ![]() |
Во-первых, в данном случае компилятор выдал кучу предупреждений. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #104 Ответы: #118 |
117. Сообщение от Аноним (117), 27-Апр-24, 02:36 | +/– | ![]() |
Ничему они не противоречат. ООП - это не про наследование. ООП - это про объекты как "черные ящики", скрывающие детали реализации и работающие по контрактам. Контракт может быть как формальным (через interface в java), так и фактическим, это без разницы. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #94 |
118. Сообщение от n00by (ok), 28-Апр-24, 08:25 | +/– | ![]() |
> Во-первых, в данном случае компилятор выдал кучу предупреждений. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #116 |
119. Сообщение от n00by (ok), 28-Апр-24, 08:30 | +/– | ![]() |
> Использование RAII не освобождает от необходимости подчищать при выходе из цикла. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #110 |
120. Сообщение от n00by (ok), 28-Апр-24, 08:34 | +/– | ![]() |
namespace там скопировано от нечего делать. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #114 |
121. Сообщение от n00by (ok), 28-Апр-24, 09:11 | +/– | ![]() |
> Звчем? Русский или английский? | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #109 |
Архив | Удалить |
Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема |
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |