Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
1977 / 833 / 115
Регистрация: 01.10.2012
Сообщений: 5,157
Записей в блоге: 2

Написать современно

06.11.2025, 13:50. Показов 14447. Ответов 154
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день

Есть такой фрагмент

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
const char * singleC = strstr(src, "//");
const char * multiC = strstr(src, "/*");
const char * eol = strstr(src, "\n");
 
const char * min = nullptr;
if (singleC) min = singleC;
if (multiC && (!min || (multiC < min))) min = multiC;
if (eol && (!min || (eol < min))) min = eol;
 
if (!min) return;
 
if (min == singleC) {
 ...
}
 
if (min == multiC) {
 ...
}
 
if (min == eol) {
 ...
}
Бросается в глаза что код примитивный (тупой, убогий, говнокод и.т.п. - как хотите). Кроме того, его можно существенно ускорить.

Хорошо, как написать грамотно, современно? И заодно универсально, чтобы работал не только с char*

Спасибо
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.11.2025, 13:50
Ответы с готовыми решениями:

Каковы современные решения написания программ?
Уже пол года как изучаю с++. За это время решил не мало задачек и перечитал литературы. Писал все...

Как создают современные компьютерные игры?
Интересно, как создают современные компьютерные игры?? То есть на каком языке программирования?? Я...

Современный интерфейс в C++ Builder
Что используют программисты для создания современного интерфейса в C++ Builder XE4? Ведь сейчас,...

154
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,614
16.11.2025, 13:33
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от DrOffset Посмотреть сообщение
будет содержать подвисший указатель
полагаю, у меня тоже было так же в истории, описанной в Написать современно
0
Покинул чат.
1133 / 728 / 195
Регистрация: 30.03.2021
Сообщений: 2,379
16.11.2025, 14:34
Royal_X, по-моему очень похоже на ваше описание, - я посмотрел исходник - конечно, время жизни не продлевается, как я с дурного ума затупил, и ТС в отношении именно этого нюанса прав.
C++
1
2
3
4
5
6
7
    template<typename _CharT, typename _Traits = std::char_traits<_CharT>>
    class basic_string_view
    {
      ...
      size_t        _M_len;
      const _CharT* _M_str;
    };
0
16.11.2025, 15:35

Не по теме:

фух,
ну наконец-то сишкошкодеры через 8 лет узнали про std::string_view,
и теперь у них появятся современные кресты.
:лол.

0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,614
16.11.2025, 16:09
Цитата Сообщение от XLAT Посмотреть сообщение
ну наконец-то сишкошкодеры через 8 лет узнали про std::string_view,
и теперь у них появятся современные кресты.
отправил код https://github.com/BDOTimer/Sa... oFilya.cpp , написанный XLAT, в DeepSeek и спросил:

Определи по коду на С++ стиль программиста - он сишник или все-таки программист, который пишет на современном С++?
И вот, что ИИ мне ответил:

Анализируя представленный код, я вижу ярко выраженный сишный стиль с элементами С++, но без использования современных идиом С++.
Вердикт: Это программист с сишным бэкграундом, который перешел на С++, но продолжает писать в сишном стиле, используя С++ как "C с классами". Код написан до стандарта C++11 и не использует современные идиомы языка.
Конечно, код написан 6 лет назад. Но, ведь, этот товарищ писал про "8 лет". К тому же, его стиль не изменился. И дальше пишет в таком стиле... ЛОЛ

Почему ты видишь соринку в глазу брата твоего, но не замечаешь бревна в своём глазу? Как ты смеешь сказать своему брату: „Брат, дай я выну соринку, которая в твоём глазу”, не видя у себя в глазу бревна. Лицемер, прежде всего, вынь бревно из своего глаза, и тогда увидишь, как вынуть соринку из глаза твоего брата».

От Луки 6:41-42
Вложения
Тип файла: zip video.zip (15.92 Мб, 0 просмотров)
1
Just Do It!
 Аватар для XLAT
4220 / 2684 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
16.11.2025, 16:47
Цитата Сообщение от Royal_X Посмотреть сообщение
И вот, что ИИ мне ответил:
теперь ты понимаешь, насколько моё мнение о сишкошкодерстве авторитетно -
я смотрю на вас всех - лютых сишкошкодеров, изнутри))
0
16.11.2025, 16:52

Не по теме:

Цитата Сообщение от XLAT Посмотреть сообщение
теперь ты понимаешь
понимаю, что у тебя какие-то комплексы... будучи сишкодером, ты из-за этого сильно переживаешь и злишься, поэтому других тоже называешь сишкодерами. Возможно, я не прав, но это мое единственное объяснение, почему ты постоянно всех называешь сишкодерами и делаешь это с иронией.
Я вообще тут никаких проблем не вижу. Ну любишь ты или кто-то другой использовать С-стиль - пиши в этом стиле, в чем проблема?
Наоборот, когда я вижу сишкодера, то сразу полагаю, что это кто-то опытный, возможно, из старой олдскульной школы программистов, которые писали на ассемблере, потом на С.

0
Just Do It!
 Аватар для XLAT
4220 / 2684 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
16.11.2025, 17:13
Цитата Сообщение от Royal_X Посмотреть сообщение
и злишься,
нет - мне смешно.

люди сидят тут уже по боля 10 лет и до сих пор не ведают, как пример, про концепт "области видимости переменных"!

почему не ведают?
потому что у них горизонтальное сишкошдерство:
переменная созданная где-нить в функции у них должна жить во всех местах их программы :лол

а почему тебе не смешно с этого, как мне???

потому что ты сишкошкодер!

ты придешь сюда в 2035 году и будешь опять и снова обсуждать опасность и вредность std::string_view,
разумеется, опираясь на свой горький опыт))

Royal_X, пишу тя и плакать прямо хочется :лол
1
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,614
16.11.2025, 17:17
Цитата Сообщение от XLAT Посмотреть сообщение
а почему тебе не смешно с этого, как мне???
потому что ты сишкшкодер!
снова у тебя не так с логикой. Если мне не смешно, поскольку я сишкодер, тогда, почему тебе смешно, если ты тоже сишкодер (и это не только моё мнение или DeepSeek, но ты сам признавался на этом форуме, что ты сишкодер).
Цитата Сообщение от XLAT Посмотреть сообщение
обсуждать опасность и вредность std::string_view
"опасно" в моем понимании это когда взорвется мой компьютер и я получу ранения))) а что мне сделает корявая программа, максимум промяукает и заглючит)
0
Just Do It!
 Аватар для XLAT
4220 / 2684 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
16.11.2025, 17:20
Цитата Сообщение от Royal_X Посмотреть сообщение
тогда, почему тебе смешно
дык, рефлексия - я сознаю - я борюсь со своим сишкошкодерством в меру своих сил.

а ты нет, вот и разница, почему тя не смешно и у тя такой серьезный фейс с текущей по этому фейсу памятью)))
1
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,614
16.11.2025, 17:23
Цитата Сообщение от XLAT Посмотреть сообщение
я борюсь со своим сишкошкодерством в меру своих сил
а может не нужно бороться? эта твоя борьба с ветряными мельницами прям чувствуется у тебя в кодах. Даже ИИ написал "С с классами". Тянешь повсюду ООП, заливая сишным соусом. Стиль кода - для меня вообще второстепенно.
1
Just Do It!
 Аватар для XLAT
4220 / 2684 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
16.11.2025, 17:30
Цитата Сообщение от Royal_X Посмотреть сообщение
Стиль кода - для меня вообще второстепенно.
и это правильно, потому что ты кодер-одиночка.

не нужен тебе стиль совсем от слова совсем.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,614
16.11.2025, 17:35
XLAT, в этом ты прав. Я пишу один, для себя в качестве хобби, и у меня нет начальника.
Но разве у тебя иначе? Точно так же и у тебя. Даже монополию ты писал один, хотя, изначально там был ещё кто-то другой.
Наверное, я единственный, кто пытался реально понять твои коды. И это было, когда я хотел понять, что за значения ивентов выводит твой движок для сапера. Ты спал, а я GUI делал)
0
Just Do It!
 Аватар для XLAT
4220 / 2684 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
16.11.2025, 17:41
Цитата Сообщение от Royal_X Посмотреть сообщение
Но разве у тебя иначе?
нет, у меня иначе,
мои проекты по скромным прикидкам на >1000 человеко-лет,
поэтому мне сишкошкодерство просто не подходит технологически.

у тя всё просто: утром проект начал - вечером закончил - 500 строк написал и готово - дело сделал - можно и похвастать...

у меня не так - мой прожект длинный, а жизнь моя короткая)
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,614
16.11.2025, 17:47
XLAT, я не про проекты писал. Хотя, у тебя тоже не карбюраторы для боингов, такие же мелкие игры, приложения.
Я имел в виду, что ты тоже кодер-одиночка, хоббист и без начальства. Волен реализовать любое извращение, хоть ассемблерные вставки, хоть сишные вещи, или даже стихи в комментариях.
Цитата Сообщение от XLAT
а жизнь моя короткая
И поэтому ты стал больше времени проводить в холливаре "Верите ли вы в Бога"?
0
Just Do It!
 Аватар для XLAT
4220 / 2684 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
16.11.2025, 17:59
Цитата Сообщение от Royal_X Посмотреть сообщение
И поэтому ты стал больше времени проводить в холливаре "Верите ли вы в Бога"?
ты не поверишь, именно там находится ответ, почему ты кодер-одиночка...

Code
1
"Люди не могут объединиться, чтобы построить Вавилонскую башню, потому что они дебилы."(Э.Айнштайн)
... в итоге, удел одиночек это кодить всю свою жизнь пузырьковую сортировку ...
0
1977 / 833 / 115
Регистрация: 01.10.2012
Сообщений: 5,157
Записей в блоге: 2
16.11.2025, 18:03  [ТС]

Не по теме:

Цитата Сообщение от DrOffset Посмотреть сообщение
Временный объект std::string уничтожится в конце выражения
Дело темное. Лазая в отладчике не раз замечал что уничтожение происходит позже. Но в принципе это ничего не меняет - точно уничтожится, ссылаться нельзя


Не по теме:

Цитата Сообщение от Royal_X Посмотреть сообщение
полагаю, у меня тоже было так же
Вполне возможно, баг мерзкий, легко просмотреть. В связи с этим такой вопросик: а почему это не пресекается? Ведь такая возможность есть, псевдокод
C++
1
void std::string_view::operator = ( std::string && ) = delete;


Цитата Сообщение от Royal_X Посмотреть сообщение
ИИ мне ответил:
И что, этому обязательно (безоговорочно) верить?
Цитата Сообщение от Royal_X Посмотреть сообщение
используя С++ как "C с классами". Код написан до стандарта C++11 и не использует современные идиомы языка.
Не раз слышал это обвинение (C с классами) в свой адрес, но никогда не понимал что в этом плохого? И в чем же заключаются "современные идиомы языка"? Никогда не видел/слышал хоть сколько-нибудь убедительного пояснения (часто типа "ООП - отстой, ФП - вышак"). Народ понимает это просто/незатейливо: надо совать std:: во все возможные места, ото и все "идиомы". Нужно ли это, лучше ли - значения не имеет. Напр std::foreach, std::copy, std::transform и.т.п. - часто без всякого ущерба делаются простецким циклом "for". Согласен (я же не старый ретроград), иногда (не всегда) новшества смотрятся "приятнее", но и только, на "идиомы" это никак не тянет.

Вот и в данной теме ничего принципиально нового/современного (пока) не увидел.
Цитата Сообщение от XLAT Посмотреть сообщение
фух,
ну наконец-то сишкошкодеры через 8 лет узнали про std::string_view,
и теперь у них появятся современные кресты.
:лол.
А много ли счастья от того std::string_view? Тот же char*, только часто хуже. Никакой "современности" в нем нет
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,614
16.11.2025, 18:05
XLAT, Джек Ма тоже рассказывал, что сам он не понимает ничего ни в какой области, а разбогател он потому, что смог собрать умных и заставил их работать вместе.
Просто когда нужно писать совместно, программисты не могут сами объединиться, обязательно нужен "начальник с плетью", чтобы контролировать процесс. У ученых аналогично. Оппенгеймер это посредственный учёный, но хороший руководитель. Смог объединить разношерстных физиков.
0
Гвоздь Задиров
 Аватар для Folian
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
16.11.2025, 18:06
Цитата Сообщение от Royal_X Посмотреть сообщение
поэтому других тоже называешь сишкодерами
Ну ты возьми и тоже всех так называй, в чём проблема-то?
Цитата Сообщение от Royal_X Посмотреть сообщение
Даже ИИ написал
ИИ зачастую пишут жуткую шляпу; как-то уж очень быстро люди падают в их объятия.

Цитата Сообщение от Royal_X Посмотреть сообщение
не карбюраторы для боингов
Да дело-то не в боингах. Кресты непрерывно развиваются, добавляются удобные штуки, ну а как их узнать и запомнить, если не использовать?

В конце концов, это всё просто небезынтересно.
Миниатюры
Написать современно  
1
Гвоздь Задиров
 Аватар для Folian
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
16.11.2025, 18:13
Цитата Сообщение от Igor3D Посмотреть сообщение
А много ли счастья от того std::string_view? Тот же char*, только часто хуже. Никакой "современности" в нем нет
std::string_view - офигенная штука.

Добавлено через 33 секунды
Цитата Сообщение от Igor3D Посмотреть сообщение
Тот же char*
Вообще мимо
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,614
16.11.2025, 18:13
Цитата Сообщение от Igor3D Посмотреть сообщение
std::transform и.т.п. - часто без всякого ущерба делаются простецким циклом "for"
а вот как раз и нет. На этом форуме была тема, и там предлагали разные решения, но вот transform просто уделал все остальные, в том числе велосипед на for. Если интересно, могу найти эту тему
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.11.2025, 18:13

Нормальная, современная книга по C++ с ООП уклоном
Так вышло что изучаю параллельно два языка Java и C++ ну вот жизть так сложилась нужно писать и там...

А.Александреску - Современное проектирование на C++
Собственно вопрос не совсем по программированию :) Хочу купить бумажный вариант, но смущает, что...

Современный интерфейс в C++ Builder / C++ Builder
Что используют программисты для создания современного интерфейса в C++ Builder 6? Ведь сейчас,...

Каков современный подход для работы со строками
Здравствуйте, хотел узнать современный подход для работы со строками. В С++ так же используется...

Концепция ООП и их использование в современных языках программирования
Дали курсовую на эту тему. Подскажите, какую литературу, которую можно бы было использовать пр ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru