powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Удобство и скорость разработки в C++
168 сообщений из 168, показаны все 7 страниц
Удобство и скорость разработки в C++
    #39267126
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так как понедельник, всё плохо, надо начинать жизнь с чистого листа и всё такое, я решил сегодня сделать тему на эту тему.
Я сейчас пишу проект, где слишком много вещей, разложенных по контейнерам. Приходится много писать кода для обхода этих контейнеров и совершения различных действий. Как правило, три первые строчки очень похожи друг на друга: первый итератор, последний итератор(в случае неизменности контейнера, чтобы его каждый раз в цикле не вычислять, да, я зануда) и, собственно, цикл. Дальше по контексту. Рука тянется написать макрос, но что-то меня останавливает. К тому же я так и не понял, какие выгоды в данном случае мне дают лямбды.
В добавок ко всему, я прочитал триптих Андрея Платова на хабре, и понял, что я не один такой. В общем-то, я это давно понял, когда ещё к ним пытался устроиться на работу, но тут просто все звёзды сошлись.
И поэтому у меня возник вопрос, как оптимизировать разработки на сяхх? Какие бонусы мы получили с С11(14), чтобы можно было разрабатывать быстро? Где и как использовать лямбды? Где и как использовать универсальные ссылки и можно ли их как-то успешно использовать на просто функциях в качестве параметров? Это вопросы, за которые я могу пострадать, но хочется разобраться, почему жить стало лучше? С теми же смартпоинтерами я не ощутил радости, потому что когда их не было, все объекты у меня были спроектированы по их принципу, и я никогда не грел голову, что у меня где-то что-то не освободилось, и я недоумевал по поводу прям яростной ненависти многих Продвинутых Разработчиков к наличию delete(или goto) в коде, тем более, что когда-то без него было вообще никак. Да, мне приходилось расписывать деструкторы, и пару-тройку раз я где-нить да на накосячил, но это было пару раз. Сейчас читаю Мейерса "Эффективный и современный С++" и не ощущаю радости. В основном, книга сводится к "было сказано <%1%>, а я говорю вам <%2%>", иными словами, делайте теперь вот так, вместо того, как вы делали раньше вот так. Да, лямбды сделали работу чуть быстрее и гибче, ключевое слово "чуть" пока что для меня. Да, теперь в шаблонах есть универсальные ссылки, избавляющие нас от дублирования описания, как это было раньше, но кто-то раньше от этого сильно страдал? Я нет, я просто следил, за тем, что я передаю в эти функции и плясал от этого. С теми же смартпоинтерами можно более завуалировано(хрен сразу увидишь) накосячить, чем раньше открыто забыть что-то грохнуть. Т.е. по принципу того же Платова: сложность языка увеличилась, а скорость разработки как-то не очень. Я пока это не вижу. И это не наезд на С++, это попытка понять, как теперь разрабатывать? Потому что если смотреть с т.з. скорости и удобства на книгу Майерса, то... ничего в общем-то и не поменялось... :[
28.06 мне пришла в голову идея проекта, 30-го я начал делать прототип. Так как я читаю Скотта, то решил всё делать по науке, потому что пока тренироваться не на чем, в результате у меня до сих пор нету прототипа, хотя я потратил примерно часов 7-8 на разработку. Меня это печалит, сейчас я занимаюсь тем, что пытаюсь сделать енумератор с произвольным доступом для данных, основанный на контейнерах, и мне нифига не легче, чем лет 3-5 назад.

Т.о, самое главное, ради чего собственно создавалась тема(а не чтобы поплакать): поделитесь технологиями и приёмами, увеличивающими скорость/качество разработки. И как в этом был использован С++11/14?

Btw, есть (кроме буста) какие-то стандартные библиотеки для работы с xml?
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39267137
YesSql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CEMbBtw, есть (кроме буста) какие-то стандартные библиотеки для работы с xml?
У буста нет библиотеки для нормальной работы с xml. Я пользуюсь libxml2
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39267155
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YesSql, спасибо, посмотрю. От xml-я мне требовалось только разобрать дерево в файл, собрать дерево из файла, так что буст справлялся. Мне просто было интересно, появились ли какие стандартные средства. Надежд было мало, но вдруг...

Возвращаясь к напечатанному, одно время я сильно велосипедил и страдал от самого факта, от того, что велосипедить - это плохо. У меня было много проектов под Win32, для начала я сделал небольшую иерархию классов и заглушек, которая была похожа на MFC, что дало мне возможность использовать студийный класс-виззард. Это ладно, фигня. Больше всего я "страдал" от надстройки над вектором, которая под собой скрывала те самые вещи, в три строки, которые я выше описал. Эти вещи касались сериализации и прочей стандартной обработки, т.е. когда меня надо было контейнер с параметрами скинуть/зачитать из файла/реестра, я не писал циклов, я просто звал 1 соответствующую функцию. Там же внутри были всякие базовые проверки. В результате у меня на этой базе выросло нечто, что позволило мне связать сложные структуры данных с системами хранения, независимо от самих систем, и с GUI. И это было удобно! Кто помнить MFC-шный DDX? Там надо было написать макрос на 1 параметр/контрол, потом в коде звать UpdateData в нужных местах( позже я увидел что-то подобное с событиями в QT, но у меня они были привязаны к Win32, да). У меня была ровно одна строчка для привязки контрола к параметру. При этом можно было 1 параметр привязать к нескольким контролам, и если один из них менялся юзером, система автоматом меняла остальные, без всяких вызовов UpdateData(где надо помнить, TRUE/FALSE - в какую сторону), при этом я получил бонусом, что изменяемые параметры накатывались сразу, прям во время работы с контролами, в программу, и юзер мог видеть, как оно, не нажимая каждый раз OK, чтобы посмотреть, чего и как настроилось, и там же была система отката по кнопке Cancel(правда, надо было ещё одну строчку написать в OnCommad, но не беда), потому что в классе параметра была система для Backup/Restore. Это всё экономило мне уйму времени, вкупе с шаблонами-кубиками для построения приложений, которые у меня появились в процессе разработок.

Вот есть сейчас что-то такое, чтобы можно было не велосипедить, а взять из коробки, чтобы работало быстро и всё умело?
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39267192
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этот который Платов?

https://habrahabr.ru/post/259831/
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39267284
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, да, он самый. Придумыватель Силиконовой Тайги.
блин, только сейчас увидел ошибку в первом слове, вот так всегда :(
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39267288
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В ту же сторону
https://habrahabr.ru/post/259993/ Сравнение Nim и Rust, причем пример программы wordcount на D есть в комментах и он лучше.

По топику - эволюция с++ в плане удобства разработчика:
-STL дала безопасность
-лямбды дали удобство там, где получались страшненькие по виду каллбэки
-крупные библиотеки типа буста уменьшили велосипедостроение

Из неудобства:
-пострадала переносимость между компиляторами. Не все компиляторы нормально поддерживают новые фичи. Раз - и ты не можешь использовать любимую библиотеку, потому что не собирается либа.
-бинарная совместимость С++ ужасна
-внутренний код шаблонных библиотек нечитаем

Остальное меня не затронуло, но я мало пишу на С++, предпочитая из-за удобства разработчика С#
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39267293
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как же
Код: plaintext
1.
for (auto& element : container) doSomething(element);


? зачем итераторы?
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39267297
д0k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Siemargl-бинарная совместимость С++ ужасна

.....

Остальное меня не затронуло,
но я мало пишу на С++, предпочитая из-за удобства разработчика С#


Бинарная совместимость у С# еще хуже ....
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39267300
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По моему мнению - оптимизация разработки, это сокращение возможных ошибок. Чем больше ошибок найдет компилятор, тем меньше их найдет пользователь. К тому же компилятор покажет пальцем, а пользователь - нет.

А отсюда - константность, шаблоны, static_assert, override, enum class.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39267335
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemargl, мне не понравилась слишком вольная форма подачи материала
и завышенная самооценка автора. Типа я тут такой "Луговский" всех синьоров
на вертел.... "му**к... ужратый пивом..." прилагается.

Это по поводу трех статей

https://habrahabr.ru/post/259831/
https://habrahabr.ru/post/259841/
https://habrahabr.ru/post/260149/
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39267345
д0k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton https://habrahabr.ru/post/260149/


авторТезис о том что язык — есть инструмент для создания программного обеспечения,
для меня неоспорим, из из этого вытекает мое требование к языку об
увеличении производительности команды. Практика же показывает,
что далеко не многие ведут разговор о языках с этой позиции.


Какая прелесть ...

Команда это конечно же маркетинг и саппорт,
всех возможных и не возможных монетизациях ....

)
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39267715
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglПо топику - эволюция с++ в плане удобства разработчика:
-STL дала безопасность
-лямбды дали удобство там, где получались страшненькие по виду каллбэки
-крупные библиотеки типа буста уменьшили велосипедостроениеа можно про это подробнее?
Остальное меня не затронуло, но я мало пишу на С++, предпочитая из-за удобства разработчика С# Ну вот... о_О
alex_kа как же
Код: plaintext
1.
for (auto& element : container) doSomething(element);


? зачем итераторы?Спасибо, надо будет глянуть, что там внутри. Btw, на 2010-й студии всё-таки какой компилятор? Он такую конструкцию не понимает. auto понимает.
alex_kПо моему мнению - оптимизация разработки, это сокращение возможных ошибок. Чем больше ошибок найдет компилятор, тем меньше их найдет пользователь. К тому же компилятор покажет пальцем, а пользователь - нет.

А отсюда - константность, шаблоны, static_assert, override, enum class.Это всё да, но хотелось бы какого-то повышения уровня абстракций :(
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39267723
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторСпасибо, надо будет глянуть, что там внутри.
Там внутри begin() и end() контэйнера, которые обязаны вернуть объект, который может ++, != и *.
Для последовательного набора элементов проканает и обычный указатель :)
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39267779
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMb,

так используй

for(:)

там не надо никаких итераторов...
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39267783
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex_kавторСпасибо, надо будет глянуть, что там внутри.
Там внутри begin() и end() контэйнера, которые обязаны вернуть объект, который может ++, != и *.
Для последовательного набора элементов проканает и обычный указатель :)
Вот end() меня напрягает, что его каждый раз оно скрыто считать будет. Метод универсальный, да, но часто end() за весь цикл один и тот же.


MasterZivCEMb,

так используй

for(:)

там не надо никаких итераторов...не понял о_о

У меня ещё вопрос по 11 сямм. Если у меня, например, конструктор принимает r-ссылку, есть 2 оператора =, с r-ссылкой и с константной ссылкой (const Cls& и Cls&&), то почему при вызове из этого конструктора вызывается оператор = для работы с константной ссылкой, а не rvalue-ссылкой? Приходится кастовать заново std::move.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39267831
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
. К тому же я так и не понял, какие выгоды в данном случае мне дают лямбды.

никаких.
для лямбды надо применять не циклы, а функции высших порядков, transform, for_each
и так далее.



И поэтому у меня возник вопрос, как оптимизировать разработки на сяхх?

э... ммм... как это? Может кодирование?


Какие бонусы мы получили с С11(14), чтобы можно было разрабатывать быстро?

ну, много их, тот же for(:)

Где и как использовать лямбды?

выше сказал. еще можно добавить, раньше было такое понятие"фукнтор", вот везде, где его нужно было применять, теперь можно использовать лямбды. Это проще, более кратко и понятно.


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

я и сам возможно пока не знаю, но мне кажется, что их применение на 80 или более процентов связано с кодирование библиотек, а не конечного кода.


Сейчас читаю Мейерса "Эффективный и современный С++" и не ощущаю радости.


Радость - она не здесь, радость - это уйти в открытое море на парусной яхте или с шорохом лететь с вершины вниз по снежной целине на доске, когда вокруг только снег, горы и верные друзья...

А тут тебе просто дали новую автоматическую отвертку, чтобы тебе было удобнее крутить шурупы. Чуть больше комфорта, и всё.


дальше у тебя непонятно...

Т.е. по принципу того же Платова: сложность языка увеличилась, а скорость разработки как-то не очень.

кто такой Платов, я не знаю, но скорость разработки в общем скорее не этим всем определяется.


Я пока это не вижу. И это не наезд на С++, это попытка понять, как теперь разрабатывать? Потому что если смотреть с т.з. скорости и удобства на книгу Майерса, то... ничего в общем-то и не поменялось... :[



ну, на самом деле очень многое поменялось.



28.06 мне пришла в голову идея проекта, 30-го я начал делать прототип. Так как я читаю Скотта, то решил всё делать по науке, потому что пока тренироваться не на чем, в результате у меня до сих пор нету прототипа, хотя я потратил примерно часов 7-8 на разработку. Меня это печалит, сейчас я занимаюсь тем, что пытаюсь сделать енумератор с произвольным доступом для данных, основанный на контейнерах, и мне нифига не легче, чем лет 3-5 назад.


Ну, если у тебя личный затык, при чем тут язык и изменения в нем?

я бы вообще не делал энумераторы, соотнеси множество твоих объектов с множеством натуральных целых, и все пока, а потом, когда все сделаешь, сверху прилепишь итератор.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39267895
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv. К тому же я так и не понял, какие выгоды в данном случае мне дают лямбды.

никаких.
для лямбды надо применять не циклы, а функции высших порядков, transform, for_each
и так далее. ясно, надо изучать и пробовать, чтобы разобраться.
И поэтому у меня возник вопрос, как оптимизировать разработки на сяхх?

э... ммм... как это? Может кодирование? для примера: можно вскапывать огород лопатой, а можно взять мотоблок, и всё пойдёт быстрее. Или плуг. Или экскаватор. Или динамит. Вариантов много под разные нужды. А можно вообще руками, да.
Какие бонусы мы получили с С11(14), чтобы можно было разрабатывать быстро?

ну, много их, тот же for(:) а ещё?
Сейчас читаю Мейерса "Эффективный и современный С++" и не ощущаю радости.

Радость - она не здесь, радость - это уйти в открытое море на парусной яхте или с шорохом лететь с вершины вниз по снежной целине на доске, когда вокруг только снег, горы и верные друзья... Хочется от коддинга тоже получать радость. Я вот один проект делаю на стороннем фреймворке, у которого есть "наследование" в классах через динамический eject объектов в класс-ноду. Это даёт возможность быстро и удобно наполнять объекты нужными свойствами и другими объектами, а так же быстро с ними работать. Вот коддинг, а особенно разработка архитектуры в этой среде у меня вызывает радость, хотя бы потому что способствует придумыванию многих интересных решений. Просто потому что архитектура такая.
А тут тебе просто дали новую автоматическую отвертку, чтобы тебе было удобнее крутить шурупы. Чуть больше комфорта, и всё. Хочу больше отвёрток. Как в той же яве.
дальше у тебя непонятно...

Т.е. по принципу того же Платова: сложность языка увеличилась, а скорость разработки как-то не очень.

кто такой Платов, я не знаю, но скорость разработки в общем скорее не этим всем определяется. Не, он приводил в пример Scala, как сильно усложнённый язык, приводил аргумент, что допускает, если усложнение языка даёт ускорение разработки. Как оправдание усложнению. Т.е. зачем делать язык сложнее, если это ничего (кроме понтов) не даёт? Поэтому, почитав про 11/14, я вижу усложнение языка, и задаю вопрос, что мы получили взамен за это усложнение.
Я пока это не вижу. И это не наезд на С++, это попытка понять, как теперь разрабатывать? Потому что если смотреть с т.з. скорости и удобства на книгу Майерса, то... ничего в общем-то и не поменялось... :[

ну, на самом деле очень многое поменялось. с т.з. скорости и удобства?
28.06 мне пришла в голову идея проекта, 30-го я начал делать прототип. Так как я читаю Скотта, то решил всё делать по науке, потому что пока тренироваться не на чем, в результате у меня до сих пор нету прототипа, хотя я потратил примерно часов 7-8 на разработку. Меня это печалит, сейчас я занимаюсь тем, что пытаюсь сделать енумератор с произвольным доступом для данных, основанный на контейнерах, и мне нифига не легче, чем лет 3-5 назад.

Ну, если у тебя личный затык, при чем тут язык и изменения в нем? да, у меня затык, но всё из-за того самого велосипедостроения.
я бы вообще не делал энумераторы, соотнеси множество твоих объектов с множеством натуральных целых, и все пока, а потом, когда все сделаешь, сверху прилепишь итератор.
у меня там мапа. Хочется, чтобы сторонний алгоритм, не задумываясь про индексы и внутреннюю структуру вообще, говорил мапо-содержащему объекту что-то типа GetFirst/GetNext, получал некий объект из мапы и работал с ним, сам решая, брать следующий или нет. Т.е. цикл отвязан от мапы. Но эту проблему я решил, вчера после написания "статьи", я просветлился, взглянул на свой код иначе, и всё переписал, как надо :) так что теперь в случае затыков, буду практиковать тут
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39267901
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbХочется от коддинга тоже получать радость. Я вот один проект делаю на стороннем фреймворке, у которого есть "наследование" в классах через динамический eject объектов в класс-ноду. Это даёт возможность быстро и удобно наполнять объекты нужными свойствами и другими объектами, а так же быстро с ними работать. Вот коддинг, а особенно разработка архитектуры в этой среде у меня вызывает радость, хотя бы потому что способствует придумыванию многих интересных решений. Просто потому что архитектура такая.
Радует твоя способность вносить шум в обычные слова. Коддинг это что? Изучение трудов Эдгара Кодда?

И кстати, хотел-бы напомнить что разработчик получает деньги за реализацию фич или возможностей а не за
"придумывание интересных решений". Тот-же "Донской козак" Платов писал об этом в перерывах между буханием
пива.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39267909
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. зачем делать язык сложнее, если это ничего (кроме понтов) не даёт? Поэтому, почитав про 11/14, я вижу усложнение языка, и задаю вопрос, что мы получили взамен за это усложнение.
Я был на семинаре по Scala где нам предлагалось поставить среду + некие учебные примеры. Они назывались Koans.
(впоследствии я узнал что Коан - это какая-то сущность в дзен-буддизме но не суть) И вобщем необходимо
было помедитировав - понять как пофиксить фрагменты кода чтобы Юнит-тесты выдали ок.

Я признаюсь честно что едва-ли выполнил 50% от всех коанс за нужное время. А между тем
со мной в аудитории сидели juniors у которых были такие-же резалты. Вобщем это было похоже
на IQ тест в котором невозможно набрать высокий бал буду чи просто знающим. Нужно
было толи хапнуть нейростимуляторов толи действительно курить вещеста.

После этого у меня началось некое органическое неприятие Scala. Все их тюторы и примеры
мне стали казаться слишком заумными и надуманными.

Тот-же Груви с Котлином решали похожие задачки так-же но проще и органичнее.

Вобщем если ты хочешь казаться умным - то бери Scala.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39267925
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbВот end() меня напрягает, что его каждый раз оно скрыто считать будет. Метод универсальный, да, но часто end() за весь цикл один и тот же.
Ваше стремление оптимизировать код похвально.
Веселит только ваша уверенность что вы это сделаете лучше самого компилятора
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39267929
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonРадует твоя способность вносить шум в обычные слова. Коддинг это что? Изучение трудов Эдгара Кодда?Написание кода.
maytonИ кстати, хотел-бы напомнить что разработчик получает деньги за реализацию фич или возможностей а не за
"придумывание интересных решений"Ну я и тем и другим занимаюсь. В том и прелесть, я придумываю всё мне ставят довольно общие, абстрактные задачи, типа "сделать хорошо", я придумываю как, потом это курится с архитекторами и аналитиками, потом после курения я это кодю. Кожу. Кодирую, в общем.
На прошлой работе всё было по-другому. Пишешь одну строчку кода, потом её смотрят 10 человек и неделю всё это мусолится, правильно/неправильно. Потом ещё это всё переписывается так, как видят это тимлиды. И это тебе ставится в вину, что ты написал не так(хоть и безопаснее/эффективнее), как видят тимлиды. И только потом попадает в сборку. Т.о. никаких архитектурных решений даже по коду. Вообще лучше не думать в голову, а просто писать то, что в пункте написано. Теперь я работаю раз в пять меньше и делаю раз в двадцать больше, почти сам себе хозяин. Вот поэтому теперь я рад. И все вокруг тоже.
maytonВобщем если ты хочешь казаться умным - то бери Scala.
Ну вот у Платова как-то почти ровно так и было сказано. Но я не хочу казаться умным. Мне вообще пофиг, как я кажусь. У меня проблема в том, что скорость генерации идей у меня сильно превосходит скорость их воплощения.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39267934
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbПоэтому, почитав про 11/14, я вижу усложнение языка, и задаю вопрос, что мы получили взамен за это усложнение.
Нет никакого усложнения.
Новые стандарты - 11, 14, 17 это не какие-то фантазии комитета стандартизации, а просто фиксация сложившейся практики. Т.е. сначала это было кем-то реализовано, признано успешным и полезным, и только потом внесено в язык.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39267937
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyВаше стремление оптимизировать код похвально.Не, без фанатизма. Такой вынос итераторов разумен только в коде, близком к real-time, какие-то обработки по несколько тысяч раз в секунду и прочее. На точечных событиях смысла не имеет.
Anatoly MoskovskyВеселит только ваша уверенность что вы это сделаете лучше самого компилятора Ну, когда я с графикой работал, я смотрел код, сгенерённый компилятором, и если мог, заменял сишный кода на асмовые вставки, чтобы было быстрее.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39267940
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyCEMbПоэтому, почитав про 11/14, я вижу усложнение языка, и задаю вопрос, что мы получили взамен за это усложнение.
Нет никакого усложнения.
Новые стандарты - 11, 14, 17 это не какие-то фантазии комитета стандартизации, а просто фиксация сложившейся практики. Т.е. сначала это было кем-то реализовано, признано успешным и полезным, и только потом внесено в язык.
Да, это понятно. Это доведение языка до ума.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268060
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbТакой вынос итераторов разумен только в коде, близком к real-time, какие-то обработки по несколько тысяч раз в секунду и прочее. На точечных событиях смысла не имеет.
Вообще не имеет смысла.
Т.к. компилятор в случае шаблонов видит весь код и выносит за пределы цикла константные конструкции.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268067
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точно так же умиляют утверждения что ++iter быстрее чем iter++ )))
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268112
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbНу, когда я с графикой работал, я смотрел код, сгенерённый компилятором, и если мог, заменял сишный кода на асмовые вставки, чтобы было быстрее.
А можешь пример привести что за С++ компиллятор был и что ты заменял на асм-вставки?
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268123
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyТочно так же умиляют утверждения что ++iter быстрее чем iter++ )))компилятор теперь умеет и это оптимизировать?
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268128
andr_andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychAnatoly MoskovskyТочно так же умиляют утверждения что ++iter быстрее чем iter++ )))компилятор теперь умеет и это оптимизировать?

С++ компиляторы давно умеют.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268131
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych,

Всегда умел ))
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268165
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovskyegorych,
Всегда умел ))Скотт Майер возражал, помнится )) это же его совет писать в циклах ++iter
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268188
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyВообще не имеет смысла.
Т.к. компилятор в случае шаблонов видит весь код и выносит за пределы цикла константные конструкции.
Хмм. Не верю :) Внутри цикла могли быть вызовы функций, которые меняют содержимое контейнера. Неужели компилятор будет проверять все вероятные вызовы, вплоть до того, что могут быть указатели на функции и другие нетривиальные вещи, отследить которые на уровне компиляции нереально.

maytonА можешь пример привести что за С++ компиллятор был и что ты заменял на асм-вставки?
Начиналось всё с MS VC6.0. Ну, например, я memcpy/memset заменил себе на dwdcpy/dwdset
dwdcpy
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
void dwdcpy(DWORD *pdwDst, DWORD *pdwSrc, int iSize)
{
	__asm	push edi
	__asm	push esi 
	__asm	push ecx 
	{
		__asm	mov ecx, iSize
		__asm	mov esi, pdwSrc
		__asm	mov edi, pdwDst
		__asm	rep movsd
	}
	__asm	pop ecx 
	__asm	pop esi
	__asm	pop edi
}


но это, наверно, не считается, но работало быстрее.
Ну вот нашёл кусок кода заливки:
Fill
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
			__asm
			{
				push edi
				push esi 
				push ecx 
				push eax
				push edx

				mov	edx, iAdd 

				__begin:

					mov ecx, iSize
					mov eax, cr
					mov edi, pdw
					rep stosd

				add	pdw, 	edx
				dec iH
				jnz __begin

				pop edx
				pop eax
				pop ecx 
				pop esi
				pop edi
			}


а так же у меня все приращения указателей заменены на вставки, потому как это вроде делалось через сначала копирование в регистр, там приращение, потом копирование обратно.
Всё замерял при правках, так как время было для меня критично. Были места, когда по логике должно было быстрее работать, а на деле тормозило.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268195
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я погуглил сорцы memcpy. Часть из них оперируют char. Часть - unsigned long int.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268204
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм... на хабре вообще автор изучал вопрос и вернулся в лоно истинной церкви. Собственно в std::memcpy
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268238
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbХмм. Не верю :) Внутри цикла могли быть вызовы функций, которые меняют содержимое контейнера. Неужели компилятор будет проверять все вероятные вызовы, вплоть до того, что могут быть указатели на функции и другие нетривиальные вещи, отследить которые на уровне компиляции нереально.
Неужели программист, который вынес end() из цикла, это проверил сам, и потом после каждой правки проекта перепроверил
Но ответ конечно, да, в элементарных случаях, в которых вы имеет смысл выносить end() компилятор сам это делает, а в сложных случаях человеку это доверять нельзя.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268250
Фотография tehKosh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Приходится много писать кода для обхода этих контейнеров и совершения различных действий. Как правило, три первые строчки >очень похожи друг на друга: первый итератор, последний итератор(в случае неизменности контейнера, чтобы его каждый раз в цикле >не вычислять, да, я зануда) и, собственно, цикл. Дальше по контексту.
В stl идеологически вернее определить функтор и применить его (или стандартный алгоритм stl) к контейнеру или его части. Тем более в сpp11 лямбды, auto и другой синтаксический сахар позволяет сделать это теперь очень кратко по объему кода, в сpp98 получалось, конечно, не очень красиво синтаксически и для одноразовой операции короче было пробежать циклом по контейнеру.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268251
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychСкотт Майер возражал, помнится )) это же его совет писать в циклах ++iter[/quote]
Во-первых этот совет был в книжке написанной в прошлом веке ))
Во-вторых, дефакто компиляторы убирают копирование в операторе ++, если его результат игнорируется.
А в С++17 они и деюре обязаны это делать.
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0135r0.html
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268269
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tehKoshВ stl идеологически вернее определить функтор и применить его (или стандартный алгоритм stl) к контейнеру или его части.
Нет никакой единственно верной идеологии ))
В С++ можно делать как хочешь. Он одинаково хорошо поддерживает и функциональный и императивный подход.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268371
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky,

ну как-то лишка махнул с "хорошо"
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268380
Фотография tehKosh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>В С++ можно делать как хочешь. Он одинаково хорошо поддерживает и функциональный и императивный подход.
речь не о с++, а о stl в данном случае
stl спроектирован на основе идей generic programming
в первую очередь это конечно же относится к типам, упрощая - контейнер проектируется не под определенный тип, а под семейство типов, удовлетворяющих некоторым условия
но, второе, о чем иногда забывают, и ваши алгоритмы тоже должны быть обобщены (так же как и стандартные алгоритмы входящие в состав stl) и поэтому должны быть способны применяться к некоторому семейству контейнеров, а не к конкретному контейнеру
получается, когда вы просто перебираете элементы контейнера в цикле, вы нарушаете идеологию библиотеки
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268388
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)ну как-то лишка махнул с "хорошо"
Ну да, тут не хаскель. Но и предназначен C++ не для упоротых математикой.
tehKoshречь не о с++, а о stl в данном случае
STL это часть С++. Такой же инструмент, как и остальные части, такие как синтаксис, как совместимость с С и пр.
Если вам нужен vector как динамический массив, то вы его просто используете. Нет никакой идеологии за массивом. Хотя если вам вдруг надо для вашей задачи рассматривать массив как контейнер то флаг вам в руки. Но это не идеология, а просто другая задача, которую С++ умеет успешно решать как и первую.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268401
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyВо-первых этот совет был в книжке написанной в прошлом веке ))
Во-вторых, дефакто компиляторы убирают копирование в операторе ++, если его результат игнорируется.
А в С++17 они и деюре обязаны это делать.
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0135r0.html понял, спасибо.
Жаль, что до С++17 мне пока как до луны ))
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268467
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я понял что мне не хватает мозгов хорошей документации по stl. Всё к этому (к stl) в итоге и должно было свестись. Сам язык в чистом виде не должен поддерживать высокоуровневые абстракции, а вот stl - как раз отличный кандидат для этого, причём с самого начала своего создания. Я сейчас немного шарился по интернету, смотрел примеры по лямбдам и увидел много использования кода из stl, про который я ничего не знаю, и который сокращает количество написанного кода. Есть мнение, что изучив stl более подробно, я ещё раз решу все свои проблемы
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268533
vitprof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Производительность (в написании кода), на мой взгляд, больше зависит от используемых библиотек в случае C++ и той парадигмы программирования, в которой пишется код. Считаю, что в C++ не хватает аннотаций, как в java. На STL определенно стоит вам посмотреть глубже. Лямбды дают удобство разработки и компактность кода. Например, в случае задания критериев сортировки, лямбды очень удобны.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268541
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще добавились std::thread, std::mutex, std::lock_guard и т.д.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268684
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЭтот который Платов?

https://habrahabr.ru/post/259831/


вчера прочитал с трудом все три опуса по ссылке. Это их надо было читать, или это просто ссылка на автора?

ну это не программист, это гопник какой-то...
че его слушать...
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268690
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
. Считаю, что в C++ не хватает аннотаций, как в java.


нафига нам аннотации?
во-первых, это такой способ менять язык, не меняя язык, на фиг это вообще нужно?
во-вторых, есть прагмы.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268735
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitprofСчитаю, что в C++ не хватает аннотаций, как в java.
Вы изучите полный цикл создания ПО и рантайм с аннотациями. И поймете
что C++ половина этих юзкейсов не поддерживает. Т.к. нет концепции
компонента или бина и нет ClassLoader.

А чтобы маркировать методы и аргумента чем-нибудь - достаточно комментариев.
Автодокументирование так и работает ЕМНИП.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268746
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По удобствам.

Вот же :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
struct TrackableTask
{
    task_id_t m_task_id = 0;
    task_type_t m_task_type;
    std::string m_task_status = "active";
    std::time_t m_started_at = std::time(NULL);
    std::time_t m_stopped_at = 0;
    site_id_t m_site_id = 0; // optional
    int m_crawler_config_id = 0; // optional
    // Failure statistics during execution of the task (total_try_count, acceptor_failed_count, network_problem_count)
    unsigned m_total_try_count = 0;
    unsigned m_acceptor_failed_count = 0;
    unsigned m_network_problem_count = 0;
// ...
};




Уже ж удобнее, нет разве ?
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268793
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex_kА еще добавились std::thread, std::mutex, std::lock_guard и т.д.вот! А где хорошие документации на эту тему?

Нашёл на вид неплохую документацию

MasterZivвчера прочитал с трудом все три опуса по ссылке. Это их надо было читать, или это просто ссылка на автора? просто ссылка на автора и на его мысль, с которой всё началось: скорость разработки
ну это не программист, это гопник какой-то...
че его слушать...хмм, но мысль про требование от ЯП скорости (и удобства и простоты) разработки, я считаю, разумная. Всё становится очевидно, когда разрабатываешь продукт сам, тогда время становится одним из ключевых факторов, оно почти всегда против тебя(только после релиза оно на твоей стороне). И чем быстрее ты сделаешь продукт, тем лучше.

MasterZivУже ж удобнее, нет разве ? Ну, на вид вроде удобно. Но верхние два типа теперь можно через std:: описать. Про остальное судить нельзя без взгляда на реализацию и использование. Описание (иерархии) классов одних и тех же вещей может сильно меняться в зависимости от целей и перспектив развития.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268839
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
typedef?
using!
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268848
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbMasterZivУже ж удобнее, нет разве ? Ну, на вид вроде удобно. Но верхние два типа теперь можно через std:: описать. Про остальное судить нельзя без взгляда на реализацию и использование. Описание (иерархии) классов одних и тех же вещей может сильно меняться в зависимости от целей и перспектив развития.
Вы не поняли. Тот пример про то, что значения полей можно задать прямо при объявлении, а не где-то в конструкторах, как было раньше.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268960
vitprof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,

Прагмы зависят от компилятора, нет возможности расширять их функциональность. Иногда, с моей точки зрения, бывает полезно аннотировать методы. Как пример, полагаю, вы знаете, зачем используется moc компилятор в Qt? Конечно, введя только аннотации, эту проблему не решить.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39268968
vitprof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

Понимаю, как я уже сказал раннее, введя только аннотации, проблему не решить. Но метаданные для класса можно реализовать как опциональную фичу. Как говорится, каждый язык имеет свое применение.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39269003
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitprofmayton,
Но метаданные для класса можно реализовать как опциональную фичу. Как говорится, каждый язык имеет свое применение.
Зачем в С++ нужна эта опциональная фича? Можете привести пример из практики метаданных в С++
который был-бы полезен?
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39269012
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМожете привести пример из практики метаданных в С++ который был-бы полезен?@deprecated был бы полезной фичей, возможно, что и @override бы пригодился. Но я все знания об аннотациях в Яве почерпнул из википедии только что. Может я не всё понимаю об них )
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39269015
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych@deprecated был бы полезной фичей, возможно, что и @override бы пригодился. Но я все знания об аннотациях в Яве почерпнул из википедии только что. Может я не всё понимаю об них )
Эти две уже давно есть ))
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39269027
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbхмм, но мысль про требование от ЯП скорости (и удобства и простоты) разработки, я считаю, разумная.


Там мысль "за всё хорошее, против всего плохого".
Ещё мысль "динамика -- говно".
Т.е. там тупо нет разумных мыслей.

Ну и ещё одна мысль "найти лучший в мире язык программирования" тоже дурацкая.
Ну не бывает универсальных языков программирования.
Надо знать много и применять по необходимости разные в разных случаях.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39269030
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMb
MasterZivУже ж удобнее, нет разве ? Ну, на вид вроде удобно. Но верхние два типа теперь можно через std:: описать. Про остальное судить нельзя без взгляда на реализацию и использование. Описание (иерархии) классов одних и тех же вещей может сильно меняться в зависимости от целей и перспектив развития.

Вообще -то я имел в виду тупо одну фичу -- инициализация мемберов через инициализаторы в теле класса, а не в каждом из конструкторов.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39269033
vitprof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonvitprofmayton,
Но метаданные для класса можно реализовать как опциональную фичу. Как говорится, каждый язык имеет свое применение.
Зачем в С++ нужна эта опциональная фича? Можете привести пример из практики метаданных в С++
который был-бы полезен?

Пример я уже приводил - moc компилятор Qt или ORM на C++. Проблема заключается в том, что сами по себе аннотации мало что дадут. Необходимо реализовать допмеханизмы для работы с классом. Например, найти указатель на метод класса по аннотации и вызвать его. К сожалению, это вряд ли будет реализовано в C++. Можно было бы реализовать дополнительный шаг процесса компиляции после препроцессинга - обработка аннотаций. На этой стадии можно, например, сгенерировать дополнительный C++ код, как это делает mос компилятор Qt, который также генерирует C++ код с метаданными для класса. Ну, можно еще подумать и привести другие примеры. Например, интеграция с IDE.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39269035
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitprofmayton,

Понимаю, как я уже сказал раннее, введя только аннотации, проблему не решить. Но метаданные для класса можно реализовать как опциональную фичу. Как говорится, каждый язык имеет свое применение.

Ещё раз, аннотации -- это костыли.
В нормальных языках аннотаций НЕТ.
Зачем ты хочешь их тащить в нормальный язык С++ -- не понятно от слова "совсем".
Надо добавлять фичи -- надо расширять язык.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39269041
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychmaytonМожете привести пример из практики метаданных в С++ который был-бы полезен?@deprecated был бы полезной фичей, возможно, что и @override бы пригодился. Но я все знания об аннотациях в Яве почерпнул из википедии только что. Может я не всё понимаю об них )

override уже есть, не в виде аннотации.
deprecated -- напиши в документации, в комментарии, или напиши и ещё удали тело (реализацию). Линкер тебе всё скажет, а потом пользователь прочитает в документации, что это -- deprecated.

Кстати, deleted можно теперь писать не только к конструкторам ? Интересно, надо глянуть.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39269049
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitprofmaytonпропущено...

Зачем в С++ нужна эта опциональная фича? Можете привести пример из практики метаданных в С++
который был-бы полезен?

Пример я уже приводил - moc компилятор Qt или ORM на C++. Проблема заключается в том, что сами по себе аннотации мало что дадут. Необходимо реализовать допмеханизмы для работы с классом. Например, найти указатель на метод класса по аннотации и вызвать его. К сожалению, это вряд ли будет реализовано в C++. Можно было бы реализовать дополнительный шаг процесса компиляции после препроцессинга - обработка аннотаций. На этой стадии можно, например, сгенерировать дополнительный C++ код, как это делает mос компилятор Qt, который также генерирует C++ код с метаданными для класса. Ну, можно еще подумать и привести другие примеры. Например, интеграция с IDE.

Да выдумки всё. Не нужны аннотации.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39269058
vitprof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivВ нормальных языках аннотаций НЕТ.
Не буду спорить, но хотелось бы уточнить, что аннотации есть в java, c#. Которые с моей точки зрения нормальные языки. Мало того, в целях кодогенерации аннотации моли бы пригодиться.

MasterZivЗачем ты хочешь их тащить в нормальный язык С++ -- не понятно от слова "совсем".
1) Улучшить читаемость кода, 2) Держать все описания в одном месте 3) иметь возможность расширить язык, когда это нужно 4) кодогенерация
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39269073
vitprof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот уже ввели generalized attributes. Наверно, это первый шаг к полноценной реализации аннотаций. Похоже, потребность есть.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39269086
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рассматривать аннотации в языке как вещь в себе - безсмысленно. Т.к. аннотация
с точки зрения Java (к примеру) это триггер который приводит к каким-либо actions
на фазах compile, class loading, runtime. Причем большая (львиная доля) этих триггеров
имеют смысл только будучи инстанциированы во фреймворках для таких техник как
ORM, web binding, xml-,json- bingings, transactions control, security, logging, unit testing, contracts, mocks,
e.t.c.

Поэтому С++ аннотации не нужны. Но если найти фреймворк и наполнить class более сложным
смыслом (сущность БД к примеру) то тот-же Qt-код (возможно) мог бы улучшить свою
читабельность если ему дать возможность декларировать сущности с особым синтаксисом.

Я к сожалению не спец в Qt и поэтому пример с Qt-moc я не понял. Что там ЕСТЬ аннотация
в общем понимании этого слова. Где там есть триггеринг этой аннотации. И как я могу
это использовать (расширять видоизменять e.t.c.).
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39269102
vitprof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonРассматривать аннотации в языке как вещь в себе - безсмысленно. Т.к. аннотация
с точки зрения Java (к примеру) это триггер который приводит к каким-либо actions
на фазах compile, class loading, runtime. Причем большая (львиная доля) этих триггеров
имеют смысл только будучи инстанциированы во фреймворках для таких техник как
ORM, web binding, xml-,json- bingings, transactions control, security, logging, unit testing, contracts, mocks,
e.t.c.
Поэтому С++ аннотации не нужны. Но если найти фреймворк и наполнить class более сложным
смыслом (сущность БД к примеру) то тот-же Qt-код (возможно) мог бы улучшить свою
читабельность если ему дать возможность декларировать сущности с особым синтаксисом.

Честно говоря, не очень понял вашу аргументацию. Собственно говоря, хорошо бы иметь возможность реализовать все указанные вами техники на C++ удобным способом.

maytonЯ к сожалению не спец в Qt и поэтому пример с Qt-moc я не понял. Что там ЕСТЬ аннотация
в общем понимании этого слова. Где там есть триггеринг этой аннотации. И как я могу
это использовать (расширять видоизменять e.t.c.).

Вот пример кода Qt:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
class MyWidget : public QWidget {
    Q_OBJECT
    Q_PROPERTY(myProperty ...);
public slots:
    void buttonPressed();
public signals:
    void notifyUser();
}

Q_OBJECT, slots, signals - директивы препроцессора, которые заменяются на пустую строку (по-моему так), но они служат инструкцией для MOC compiler, который генерирует новый C++ код с метаданными класса.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39269154
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitprofMasterZivВ нормальных языках аннотаций НЕТ.
Не буду спорить, но хотелось бы уточнить, что аннотации есть в java, c#. Которые с моей точки зрения нормальные языки.


Ну не смеши нас...
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39269381
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyВы не поняли. Тот пример про то, что значения полей можно задать прямо при объявлении, а не где-то в конструкторах, как было раньше.
MasterZivВообще -то я имел в виду тупо одну фичу -- инициализация мемберов через инициализаторы в теле класса, а не в каждом из конструкторов.А, так это "давнишняя" фича. Это всё хорошо. Но, согласитесь, описания классов в коде занимают на порядок меньше места, чем методы, а стало быть и код обработки данных. В этом смысле лямбды и всякие stl-ные конструкции, позволяющие не писать много этого самого кода, гораздо полезнее.

Ну и, возможно отдельной темой, стоило бы обсудить IDE. Раз уж вспомнили яву, у меня сейчас запущена idea 16 о огромадным проектом и 2013 студия с тем, что я начал делать 28 июня. "пропасть между ними огромна". Даже не затрагивая вещи "удобно-неудобно", можно сказать, во-первых, что студия тормозит. Местами она просто не успевает за мной. Идея, написанная на яве, не тормозит. Ну и удобных фич, "из коробки" у идеи в разы больше. У меня стойкое чувство, что эти две IDE разрабатываются принципиально разными командами. У идеи сами разработчики из своего опыта добавляют недостающие вещи, расстояние от идеи(мысли) до реализации минимальное. В то время как в студии чувствуется длинный путь в багтреккерах, собраниях аналитиков и так далее. Ну это вот у меня сложилось такое чувство. Ладно, это всё печаль и лирика, хотя тоже сильно касается скорости и удобства разработки.
PS: 2015 студию не смотрел
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39269410
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
. Раз уж вспомнили яву, у меня сейчас запущена idea 16 о огромадным проектом и 2013 студия с тем, что я начал делать 28 июня. "пропасть между ними огромна". Даже не затрагивая вещи "удобно-неудобно", можно сказать, во-первых, что студия тормозит.

да ладно, не разигрывай ... clion так тормозит, что ой ой ой...


PS: 2015 студию не смотрел

а надо было бы....
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39269421
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivда ладно, не разигрывай ... clion так тормозит, что ой ой ой...Clion не смотрел, говорю только за Idea.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39269525
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitprof
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
class MyWidget : public QWidget {
    Q_OBJECT
    Q_PROPERTY(myProperty ...);
public slots:
    void buttonPressed();
public signals:
    void notifyUser();
}

А добавление Q_OBJECT влияет на RTTI ?
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39269556
vitprof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonА добавление Q_OBJECT влияет на RTTI?

Q_OBJECT это определенный в библиотеке макрос препроцессора, который обрабатывается на стадии компиляции. Ниже код, в который разворачивается этот макрос. Как видите, добавляется статический член класса + декларация нескольких виртуальных функций, реализация которых генерируется MOC compiler. Класс с Q_OBJECT и класс без Q_OBJECT два разных класса по сути.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
public: \
    Q_OBJECT_CHECK \
    static const QMetaObject staticMetaObject; \
    Q_OBJECT_GETSTATICMETAOBJECT \
    virtual const QMetaObject *metaObject() const; \
    virtual void *qt_metacast(const char *); \
    QT_TR_FUNCTIONS \
    virtual int qt_metacall(QMetaObject::Call, int, void **); \
private:
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39269688
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivстудия тормозит
Я как перешел на QtCreator перестал даже смотреть на остальные IDE.
Летает на любых проектах.
Были проблемы с подтормаживанием в некоторых случаях, но это был баг, которых возник и потом был исправлен, а не концептуальное торможение как в Студии ))
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39269742
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitprofmaytonА добавление Q_OBJECT влияет на RTTI?

Q_OBJECT это определенный в библиотеке макрос препроцессора, который обрабатывается на стадии компиляции. Ниже код, в который разворачивается этот макрос. Как видите, добавляется статический член класса + декларация нескольких виртуальных функций, реализация которых генерируется MOC compiler. Класс с Q_OBJECT и класс без Q_OBJECT два разных класса по сути.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
public: \
    Q_OBJECT_CHECK \
    static const QMetaObject staticMetaObject; \
    Q_OBJECT_GETSTATICMETAOBJECT \
    virtual const QMetaObject *metaObject() const; \
    virtual void *qt_metacast(const char *); \
    QT_TR_FUNCTIONS \
    virtual int qt_metacall(QMetaObject::Call, int, void **); \
private:

Меня интересует. Если есть некий интерфейс типа удалённого вызова. На который
приходит не всегда специфицированный объект (сеть фигли). Есть ли у меня возможноть
удостовериться что твои мета-теги или аннотации или еще бох весть какие сущности
присутствуют в наличии. Тоесть что-то вроде:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
void remoteHanlde(QtObject *qtNetReceivedObject){
        if (is_a(qtNetReceivedObject, Q_OBJECT)){
             if (has_a(qtNetReceivedObject, Q_PROPERTY(prop="Value")){
                    .... some fucken business logic
             }
        }
}
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39269784
vitprof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonМеня интересует. Если есть некий интерфейс типа удалённого вызова. На который
приходит не всегда специфицированный объект (сеть фигли). Есть ли у меня возможноть
удостовериться что твои мета-теги или аннотации или еще бох весть какие сущности
присутствуют в наличии. Тоесть что-то вроде:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
void remoteHanlde(QtObject *qtNetReceivedObject){
        if (is_a(qtNetReceivedObject, Q_OBJECT)){
             if (has_a(qtNetReceivedObject, Q_PROPERTY(prop="Value")){
                    .... some fucken business logic
             }
        }
}




Как вы привели в примере, нет, конечно. Q_OBJECT это макрос, строка, которую препроцессор заменит на C++ код, это костыль из-за того, что отсутствуют аннотации. Все объекты в Qt, которые "шлют" сигналы и имеют "слоты", наследуются от QObject. Мы можете использовать стандартную C++ RTTI (dynamic_cast, typeof etc), а также навороты Qt типа qt_cast.

Можно сделать так:

Код: plaintext
1.
2.
3.
4.
5.
void remoteHanlde(QObject *qtNetReceivedObject){
         if (qtNetReceivedObject->property("myPropName").toInt() == 10){
                .... some fucken business logic
         }
}



Мой посыл - если бы были аннотации, то можно было бы сделать такую проверку присутствия аннотаций, а также сгенерировать дополнительный C++ код (обработка аннотаций на стадии компиляции).
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39274647
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyТочно так же умиляют утверждения что ++iter быстрее чем iter++ )))

это вполне актуальный вопрос на собеседованиях.
действительно, лет так 10-15 назад многие компиляторы для i++ генерировали менее оптимальный код, чем для ++i, и осведомленность об этом говорит о наличии опыта, в годах (не в объеме знаний).

а вот ты об этом не в курсе, что явно выдает в тебе неофита.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39274902
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaэто вполне актуальный вопрос на собеседованиях.
действительно, лет так 10-15 назад многие компиляторы для i++ генерировали менее оптимальный код, чем для ++i, и осведомленность об этом говорит о наличии опыта, в годах (не в объеме знаний).

а вот ты об этом не в курсе, что явно выдает в тебе неофита.
Нет, обо мне такой ответ ничего такого не говорит, т.к. я могу его тут же обосновать, прямо в лицо спрашивающему. А вот если на собеседовании мне будут доказывать что постфикс ++ влияет на скорость, то это признак того что в этой конторе вместо работы компостируют мозги, и туда не надо идти.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39274911
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovskynojavaэто вполне актуальный вопрос на собеседованиях.
действительно, лет так 10-15 назад многие компиляторы для i++ генерировали менее оптимальный код, чем для ++i, и осведомленность об этом говорит о наличии опыта, в годах (не в объеме знаний).

а вот ты об этом не в курсе, что явно выдает в тебе неофита.
Нет, обо мне такой ответ ничего такого не говорит, т.к. я могу его тут же обосновать, прямо в лицо спрашивающему. А вот если на собеседовании мне будут доказывать что постфикс ++ влияет на скорость, то это признак того что в этой конторе вместо работы компостируют мозги, и туда не надо идти.

господи, ты даже не осилил то, что я тебе сказал выше.

а так да, таких как ты максималистов - нормальные конторы отправляют ... в другие конторы, тут ты прав ;)
буйные максималисты обычно никому не нужны - потом код вычищать за такими себе дороже, тем более ты слушать вообще, как я посмотрю, не научен - тебе важнее высказать что-то там свое, изначально недопонятое или выдуманное вне контекста.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39274912
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaтем более ты слушать вообще, как я посмотрю, не научен
Чтобы тебя слушали, надо чем-то вызвать интерес ))
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39274918
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovskynojavaтем более ты слушать вообще, как я посмотрю, не научен
Чтобы тебя слушали, надо чем-то вызвать интерес ))

ты всерьез думаешь что кому-то интересно вызывать интерес у тех, у кого мозг стандартно зашаблонирован и зацементирован?

ты еще предложи каких староверов саентологией заинтересовать, да да
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39274946
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbКакие бонусы мы получили с С11(14)К моему глубокому имхо-вому сожалению, никаких.
Язык фактически стал другим.
С++98 - true C++
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39274947
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UsmanCEMbКакие бонусы мы получили с С11(14)К моему глубокому имхо-вому сожалению, никаких.
Язык фактически стал другим.
С++98 - true C++


С11 != С++11, а С14 вообще не существует, господи.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39274950
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaUsmanпропущено...
К моему глубокому имхо-вому сожалению, никаких.
Язык фактически стал другим.
С++98 - true C++


С11 != С++11, а С14 вообще не существует
В названии темы речь идет о Си++... поэтому и подумал, что имеется в виду Си++11.
Ок, корректирую, но если касательно Си, тада Си89 - true Си .
nojavaгосподи
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39274951
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Usman тада Си89 - true Си .
практически все актуальные компиляторы уже C99 и partial C11 compatible (даже "родные" в AIX, Solaris, HP/UX), потому такой жескач, как strict C89 - уже не актуален.

даже в MSVC уже не все так печально, ибо привинтили clang как frontend
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39274963
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MSVC6 (98 г.в.) очень даже актуален. Откомпилил тут недавно свою длл-ку под VC2015 и огреб, т.к. работает она на PentiumIII+, а вторые пни и прочие древние атлоны ее не работают, а они оказывается еще есть, хоть и немного.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39274971
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tа вторые пни и прочие древние атлоны ее не работают, а они оказывается еще есть, хоть и не много.
1) Поверить dll с помощью Dependency Walker

2) Как насчет установленных Redistributable Packages для Visual C++?
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39274974
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Dima Tа вторые пни и прочие древние атлоны ее не работают, а они оказывается еще есть, хоть и не много.
1) Поверить dll с помощью Dependency Walker

2) Как насчет установленных Redistributable Packages для Visual C++?
А при чем тут это, если в коде команды АСМа которые старые процы просто не понимают?
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39274976
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TА при чем тут это, если в коде команды АСМа которые старые процы просто не понимают?Установка Platform Toolset на v120_xp ни чего не дает?
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39274983
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TА при чем тут это, если в коде команды АСМа которые старые процы просто не понимают?
не асма, а процессора
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39274984
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TА при чем тут это, если в коде команды АСМа которые старые процы просто не понимают?
На всякий случай.
https://msdn.microsoft.com/en-us/library/ms165407.aspx Understanding Build Platforms

https://habrahabr.ru/post/251795/ Visual Studio Extensibility. Часть первая: MSBuild

https://habrahabr.ru/company/neobit/blog/151712/ Использование оболочки Visual Studio 2010 для компиляции проектов с помощью gcc в Linux
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39274990
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TОткомпилил тут недавно свою длл-ку под VC2015 и огреб, т.к. работает она на PentiumIII+, а вторые пни и прочие древние атлоны ее не работают, а они оказывается еще есть, хоть и немного. /G (Optimize for Processor) Options

значения макроса _M_IX86 :

Option in Development EnvironmentCommand-Line OptionResulting ValueBlend/GB_M_IX86 = 600 (Default. Future compilers will emit a different value to reflect the dominant processor.)Pentium/G5_M_IX86 = 500Pentium Pro Pentium II and Pentium III/G6_M_IX86 = 60080386/G3_M_IX86 = 30080486/G4_M_IX86 = 400
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39275082
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут поднобности 18816450 опцию /G там не пробовали, сейчас затестил /G5 ничего не меняет.
https://msdn.microsoft.com/en-us/library/h66s5s0e(v=vs.71).aspx These options tell the compiler to optimize code generation for the specified processor.
Как понимаю это просто оптимизация под конкретный проц, а не запрет на использование асм-команд имеющихся только в более поздних процессорах.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39275340
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaты всерьез думаешь что кому-то интересно вызывать интерес у тех, у кого мозг стандартно зашаблонирован и зацементирован?ты как-то сам себе противоречишь: с одной стороны, сам говоришь про вещи, которые происходили с конечным кодом 10-15 лет назад, которые уже давно соптимизированы, но надо их помнить и быть в курсе, с другой стороны обвиняешь в инертности мозга.
UsmanК моему глубокому имхо-вому сожалению, никаких.я ещё не доразобрался в вопросе, есть надежда ещё на stl(и boost).
Вердикт мой такой: язык стал лучше. Потому что стал гибче и продуманней, и при этом в него не внесли никакой прикладной начинки - всё это для stl и прочих. Язык остался чистым, и это хорошо.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39275524
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbnojavaты всерьез думаешь что кому-то интересно вызывать интерес у тех, у кого мозг стандартно зашаблонирован и зацементирован?ты как-то сам себе противоречишь: с одной стороны, сам говоришь про вещи, которые происходили с конечным кодом 10-15 лет назад, которые уже давно соптимизированы, но надо их помнить и быть в курсе, с другой стороны обвиняешь в инертности мозга.
какой еще инертности мозга? я лишь привел пример "городской легенды", которая имеет место быть на собеседованиях и довольно часто в реальном коде.
ты или знаешь про это, и можешь объяснить, почему вот тогда было так, а сейчас неважно, или нет.

подобных городских легенд из "лучших практик" можно надергать довольно много.
к примеру поймать неофита на предпочтении формы if (expr == variable) перед if (variable == expr)

и тут-же посадить его в лужу, если он выберет первый или второй вариант, потому что правильный ответ в случае приваивания внутри if это форма if ((variable = expr)) - на иное будет ругаться статический анализатор

подобные неактуальные "лучшие практики" кодирования нужно знать - и причины появления, и современное состояние - как нужно на самом деле делать.


ну или задать коронный вопрос зачем нужна конструкция while (1) { do_something; }; или do {} while (1);

вот реально, зачем так писать, зачем там while (1)?
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39275527
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojava
вот реально, зачем так писать, зачем там while (1)?

имелось в виду do { do_something(); } while (0); - причины появления такой идиоматичной формы?
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39275533
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojava, что означает слово 'неофит' в вашем понимании?
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39275540
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercurynojava, что означает слово 'неофит' в вашем понимании?

20..30 летний новичок, который начитался всякой новомодной ерунды поверхам, причем большей частью на каком stackoverflow, но мнит себя экспертом чуть ли не мирового класса.

в частности типовой признак детектор - использование словечек паразитов вроде Factory или Adapter в названии классов.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39275547
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaSashaMercurynojava, что означает слово 'неофит' в вашем понимании?

20..30 летний новичок, который начитался всякой новомодной ерунды поверхам, причем большей частью на каком stackoverflow, но мнит себя экспертом чуть ли не мирового класса.

в частности типовой признак детектор - использование словечек паразитов вроде Factory или Adapter в названии классов.

А если человек использует венгерскую нотацию, то он будет 'неофитом'? Всё-таки хотелось бы более детальное описание. Это слабый программист? Или это сноб? Или кто? Опишите пожалуйста более детально
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39275594
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaк примеру поймать неофита на предпочтении формы if (expr == variable) перед if (variable == expr)я всегда использую Йодовскую нотацию, потому что читать экспрешены слева нагляднее, чем внутри кода
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276242
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercurynojavaпропущено...


20..30 летний новичок, который начитался всякой новомодной ерунды поверхам, причем большей частью на каком stackoverflow, но мнит себя экспертом чуть ли не мирового класса.

в частности типовой признак детектор - использование словечек паразитов вроде Factory или Adapter в названии классов.

А если человек использует венгерскую нотацию, то он будет 'неофитом'? Всё-таки хотелось бы более детальное описание. Это слабый программист? Или это сноб? Или кто? Опишите пожалуйста более детально

за венгерскую нотацию нужно пальцы в дверь зажимать.
как и за йодовскую.

да и за любую, кроме общепринятых - программист в 99% случаев не пишет код, а читает, и если чтение затруднено для десятков или даже тысяч людей одним автором - то автор этот должен быть подвергнут обструкции.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276276
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaSashaMercuryпропущено...


А если человек использует венгерскую нотацию, то он будет 'неофитом'? Всё-таки хотелось бы более детальное описание. Это слабый программист? Или это сноб? Или кто? Опишите пожалуйста более детально

за венгерскую нотацию нужно пальцы в дверь зажимать.
как и за йодовскую.

да и за любую, кроме общепринятых - программист в 99% случаев не пишет код, а читает, и если чтение затруднено для десятков или даже тысяч людей одним автором - то автор этот должен быть подвергнут обструкции.

а венгерская нотация не общепринята?))) Какая же нотация по вашему общепринята?) И что вообще по вашему значит слово 'общепринята'? Складывается впечатление, что здесь вы подразумеваете ваше личное мнение
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276301
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercurynojavaпропущено...


за венгерскую нотацию нужно пальцы в дверь зажимать.
как и за йодовскую.

да и за любую, кроме общепринятых - программист в 99% случаев не пишет код, а читает, и если чтение затруднено для десятков или даже тысяч людей одним автором - то автор этот должен быть подвергнут обструкции.

а венгерская нотация не общепринята?))) Какая же нотация по вашему общепринята?) И что вообще по вашему значит слово 'общепринята'? Складывается впечатление, что здесь вы подразумеваете ваше личное мнение

при чем тут мое личное мнение?

общепринятое - открываешь исходники действительно значимых и удачных OSS проектов, и вчитываешься - там тебе вполне нагрядно покажут,
как принято грамотно и правильно писать, чтоб твой код могли прочитать и понять другие люди.

в мире C - отправная точка это linux kernel, glibc, free bsd kernel, apr.
в мире C++ ..... webkit


хотя вещи вроде

Код: plaintext
1.
hasIndirectAdjacentRelationOnTheRightOfDirectAdjacentChain = false;


или
еще лучше

Код: plaintext
1.
2.
3.
4.
  if (previousDirectAdjacentFragmentInDirectAdjacentChain) {
            RELEASE_ASSERT(tagNamesForDirectAdjacentChain.size() >= previousDirectAdjacentFragmentInDirectAdjacentChain->tagNameMatchedBacktrackingStartWidthFromIndirectAdjacent);
            maxPrefixSize = tagNamesForDirectAdjacentChain.size() - previousDirectAdjacentFragmentInDirectAdjacentChain->tagNameMatchedBacktrackingStartWidthFromIndirectAdjacent;
        }



https://raw.githubusercontent.com/ewebkit/webkit/ewebkit-1.11/Source/WebCore/cssjit/SelectorCompiler.cpp

отберите у них FullHD мониторы! это уже ни разу не смешно


previousDirectAdjacentFragmentInDirectAdjacentChain

сколько раз встречается слово Direct и Adjacent? что за шизофазия у вас в головах, люди?
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276312
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaда и за любую, кроме общепринятых - программист в 99% случаев не пишет код, а читает, и если чтение затруднено для десятков или даже тысяч людей одним автором - то автор этот должен быть подвергнут обструкции.я открываю наш проект, который длится двадцать лет, там венгерская нотация (да я ей вообще с детства пользуюсь, другой не было) - общепринятая же? Проект очень удачный.
Да и вообще, для меня нет проблем, в какой нотации работать, я сейчас в 2-3 разных нотациях/схемах работаю в течении дня.

nojavaсколько раз встречается слово Direct и Adjacent? что за шизофазия у вас в головах, люди?
Вооооот, дело не только и не столько в нотации, а ещё и в принятых в проекте правилах написания кода, которые, обычно включают в себя какую-нибудь нотацию, но необязательно.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276369
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaSashaMercuryпропущено...


а венгерская нотация не общепринята?))) Какая же нотация по вашему общепринята?) И что вообще по вашему значит слово 'общепринята'? Складывается впечатление, что здесь вы подразумеваете ваше личное мнение

при чем тут мое личное мнение?

общепринятое - открываешь исходники действительно значимых и удачных OSS проектов, и вчитываешься - там тебе вполне нагрядно покажут,
как принято грамотно и правильно писать, чтоб твой код могли прочитать и понять другие люди.


Есть какой-то проект 1, пусть этим проектом будет хоть ядро Linux, или что угодно, в этом проекте наверняка будет своя система обозначений, в проекте 2 - пусть это Apache сервер будет другая система обозначения и т.д. Но я не слышал о такой системе как нотация эпэчи, или нотация линэкс. А вот о венгерской нотации слышал каждый школьник, и пусть её критикует кто угодно, но она несомненно одна из общепринятых. Не сомневаюсь, что 95 процентов программистов используют ее хотя бы раз в год, хотя бы в одном месте в своем коде, 100 процентов встречают ее при анализе чужого кода
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276376
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojava, у вас слишком радикальные взгляды, и видимо не только по вашему делению людей на так называемых 'неофитов' и остальную группу(надеюсь, что ваши оскорбления данным термином по отношению к членам Сообщества впредь прекратятся), но и по вопросам общей теории информатики
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276382
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojava, да ладно бы радикальные. Они неверные. В чем-то, о чем вы говорите, есть истина, при этом как правило она на поверхности, но что-то из ваших суждений откровенно противоречит принятому положению вещей
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276456
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercurynojava, да ладно бы радикальные. Они неверные. В чем-то, о чем вы говорите, есть истина, при этом как правило она на поверхности, но что-то из ваших суждений откровенно противоречит принятому положению вещей

некий Дмитрий Пучков утверждает, что 95% популяции - ведут себя как идиоты.
причем вне зависимости от социальных слоев: для группы людей со званием профессор правило 95% тоже применимо.

каждый выбирает себе тот путь, который ему комфортнее - так удобнее, не нужно тратить такты на критическую оценку текущего состояния и пути развития того или иного направления. просто будь как все (ой, ну и что, что 95%, все же там), не прогадаешь.

и?

будем и дальше равняться на "принятое положение вещей"?

безусловно! :):)


топик вообще-то не про то, как "помогите подключить библиотеку", а про критику принятых подходов. ты разве не заметил?
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276457
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercurynojava, да ладно бы радикальные. Они неверные.

что именно неверное я говорил? даже интересно стало. конкретно?
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276470
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbnojavaда и за любую, кроме общепринятых - программист в 99% случаев не пишет код, а читает, и если чтение затруднено для десятков или даже тысяч людей одним автором - то автор этот должен быть подвергнут обструкции.я открываю наш проект, который длится двадцать лет, там венгерская нотация (да я ей вообще с детства пользуюсь, другой не было) - общепринятая же? Проект очень удачный.
А название проекта можно?

SashaMercuryНо я не слышал о такой системе как нотация эпэчи, или нотация линэкс. А вот о венгерской нотации слышал каждый школьник, и пусть её критикует кто угодно

Ну не слышал, вот послушай. https://www.kernel.org/doc/Documentation/CodingStyle

Можешь сразу начать читать с фразы:

авторEncoding the type of a function into the name (so-called Hungarian
notation) is brain damaged - the compiler knows the types anyway and can
check those, and it only confuses the programmer.

перевод нужен?

И подобных нотаций довольно много - на 80-90% они пересекаются. Ни в одном нормальном OSS проекте не сказано использовать венгерскую нотацию. Или можешь привести обратный пример?

Вот и гугл четко говорит, что любителям венгерской нотации делать и куда идти: https://google.github.io/styleguide/cppguide.html

автор• Do not use Hungarian notation (for example, naming an integer iNum). Use the Google naming conventions, including the .cc extension for source files.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276529
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojava,

Оно конечно да, многие люди ненавидят венгерскую нотацию. Но вот так-же факт что все эти люди не понимают смысла венгерской нотации.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276575
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Венгерская нотация удобна не везде. Например в фоксе ее использую, т.к. переменные нетипизированы и ошибки с типами сразу бросаются в глаза.
Например такое вылезет только в рантайм
Код: plaintext
1.
ErrorToLog("Ошибка обработки документа " + lnNum)


Это самый нездоровый косяк: ошибка в сообщении об ошибке. И венгерская нотация позволяет это легко увидеть.

По инерции пользовал ее в С/С++, подобных проблем нет, т.к. компилятор не даст скомпилировать такой код. С другой стороны в фоксе гораздо меньше типов, пары символов префикса хватает, в отличие от С
Код: plaintext
1.
2.
3.
4.
char szNum[10];
char* pszNum;
const char* pcszNum;
const char** ppcszNum;


Так и писал по инерции после фокса, пока тут кто-то не сказал что ерундой занимаюсь, поразмыслил, пришел к выводу что оно реально не надо столько лишних букав в С/С++.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276579
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owlnojava,

Оно конечно да, многие люди ненавидят венгерскую нотацию. Но вот так-же факт что все эти люди не понимают смысла венгерской нотации.

В ней нет никакого смысла. Если тебе нужно узнать тип переменной - то достаточно в VS подвести мышку, и вуаля - тебе хинтом покажут декларацию. В Netbeans аналогично, остальное лень проверять.

Несоотвествие типов (к примеру передача int-а в unsigned int или наоборот) - расскажет любой современный компилятор с включенным -Wall. Ну или pc-lint, coverity и прочие подобные - дорасскажет нерассказанное.

Итого венгерская нотация - этот такой-же бессмысленный пережиток недоразвитого инструментария прошлых лет, как и принятое, к примеру, в SQL, T-SQL, PL/SQL правило писать keywords капсом - просто в те годы не было подстветки ключевых слов в редакторе, и так якобы получалось читабельнее.

Ну... ок, монохромные мониторы окончательно исчезли в 90-х, причина - почему писать кейворды капсом, забыта даже старперами, но все продолжают их капсить, зачем-то.

Так и тут. Все уже и забыли, зачем это было придумано, печатают ерунду по привычке, не включая мозг.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276591
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaWhite Owlnojava,

Оно конечно да, многие люди ненавидят венгерскую нотацию. Но вот так-же факт что все эти люди не понимают смысла венгерской нотации.

В ней нет никакого смысла. Если тебе нужно узнать тип переменной - то достаточно в VS подвести мышку, и вуаля - тебе хинтом покажут декларацию. В Netbeans аналогично, остальное лень проверять.А с чего ты решил что венгерская нотация служит для обозначения типов?

Она служит для обозначения того о чем договорятся в конкретном проекте. И если в не типизированных языках ее действительно удобно использовать для типов, то в типизированных она используется для других вещей.
В Си и С++ мирах она чаще всего используется как замена для namespace. Смотри на почти любую библиотеку: GLIB, GTK+, Qt, wxWidgets, почти все lib* проекты и почти все интерфейсный библиотеки.
В MFC она действительно использовалась некоторое время для обозначения типов, отсюда скорее всего и пошла эта глупая ненависть.

nojavaТак и тут. Все уже и забыли, зачем это было придумано, печатают ерунду по привычке, не включая мозг.Угу. А некоторые ругают то чего не понимают...
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276604
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlА с чего ты решил что венгерская нотация служит для обозначения типов?
Она служит для обозначения того о чем договорятся в конкретном проектеИменно в таком ракурсе и использую ее /причем в коде для разных языков использую разный набор префиксов/.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276612
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sorry. Идейка появилась.

Хорошо если бы разработчики C++ придумали механизм создания программистом префиксов.
Суть в том чтобы эти префиксы давали знать синтаксическому анализатору на какой тип данных указывает префикс и освобождали программиста от явного декларирования переменных.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276613
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читал недавно документацию по WebGL и незаметно пришлось почитать и по OpenGL

Вот примерно так описывают шаблон функции.

Код: plaintext
1.
return-type Name {1234}{b s i i64 f d ub us ui ui64}{v} ([args ,] T arg1 , . . . , T argN [, args]);
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276622
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owlnojavaпропущено...


В ней нет никакого смысла. Если тебе нужно узнать тип переменной - то достаточно в VS подвести мышку, и вуаля - тебе хинтом покажут декларацию. В Netbeans аналогично, остальное лень проверять.А с чего ты решил что венгерская нотация служит для обозначения типов?
Потому что оба случая ее применения говорят о кодировании типов.
https://ru.wikipedia.org/wiki/Венгерская_нотация

Вот тот префикс назначения - nSize, это все равно про разновидность типа.

White OwlОна служит для обозначения того о чем договорятся в конкретном проекте. И если в не типизированных языках ее действительно удобно использовать для типов, то в типизированных она используется для других вещей.
В Си и С++ мирах она чаще всего используется как замена для namespace. Смотри на почти любую библиотеку: GLIB, GTK+, Qt, wxWidgets, почти все lib* проекты и почти все интерфейсный библиотеки.
В имени glDepthFunc https://www.opengl.org/wiki/GLAPI/glDepthFunc

префикс gl используется просто для обозначения namespace, т.е. является реализацией Name Mangling, потому что в C нет namespace как таковых, и это единственный путь там обеспечения глобальной уникальности имен. Но это ни разу не венгерская нотация, т.к. эта функция вообще не возвращает ничего (ибо void), и префикс в ее имени с т.з. типа или назначения переменных не имеет смысла (читаем определение венгерской нотации еще раз).

Я бы не стал путать модульность, пространство имен и венгерскую нотацию. Венгерская нотация это лишь про типы данных и назначения типов, но не про модульность и namespace.


White OwlВ MFC она действительно использовалась некоторое время для обозначения типов, отсюда скорее всего и пошла эта глупая ненависть.

Еще раз - использование одного предопределенного префикса в имени классов и глобальных функций - это лишь реализация namespace. Это не имеет отношения к венгерской нотации.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276626
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Хорошо если бы разработчики C++ придумали механизм
такой, чтобы программа сама писалась )))
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276627
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Sorry. Идейка появилась.

Хорошо если бы разработчики C++ придумали механизм создания программистом префиксов.
Суть в том чтобы эти префиксы давали знать синтаксическому анализатору на какой тип данных указывает префикс и освобождали программиста от явного декларирования переменных.

дурь несусветная. как и вся венгерская нотация. как и все эти перловые, PHP-ные и бейсиковские префиксы типа.

тип переменной задекларировать нужно лишь однажды.
но зачем с собой возить декларацию типа переменной 10 местах использования этой переменной - это вопрос.
ты уже ведь раз задекларировал, зачем это пытаться делать еще 10 раз подряд?

компилятор вполне догадается и с первого раза.


а вот что стоило бы сделать - так это убрать слабую типизацию - и запретить присваивать int в size_t, без явного приведения.
вот это было бы весьма полезно.

пока это лечится только статическими анализаторами, но...
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276630
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojava,
Вот ты привел ссылку на Википедию... Ну почему ж ты сам эту статью не прочитаешь?
https://ru.wikipedia.org/wiki/Венгерская_нотация
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276639
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaдурь несусветная. как и вся венгерская нотация. как и все эти перловые, PHP-ные и бейсиковские префиксы типа.

тип переменной задекларировать нужно лишь однажды.
но зачем с собой возить декларацию типа переменной 10 местах использования этой переменной - это вопрос.

Затем, что через пол годика, когда понадобиться заглянуть в текст программы /не говоря уже об сторонних разработчиках/ можно
будет в обычном notepad понять, что за тип переменной ...
Далее развивать суждение не буду /вариации на тему/.

PS: Ваше утверждение почти равносильно следующему диалогу.

- Мне квас нравится.

- Что за дурь несусветная нужно пить ПИВО!
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276640
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owlnojava,
Вот ты привел ссылку на Википедию... Ну почему ж ты сам эту статью не прочитаешь?
https://ru.wikipedia.org/wiki/Венгерская_нотация

я вполне ее прочитал, как и английскую версию. там даже близко нет того, на что ты намекаешь.

хотя в попытке сохранить лицо - считать, что любой префикс, приписанный к имени класса (включая прилагательные и все, что прописано в camel нотации) - это все есть венгерская нотация, тебе конечно может померешиться там всякое.


ну хочешь считать так (упорствовать в своих заблуждения) - считай, ктож тебе запретит-то :)
типа сохраненное лицо то важнее, ктоже спорит :)
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276643
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012nojavaдурь несусветная. как и вся венгерская нотация. как и все эти перловые, PHP-ные и бейсиковские префиксы типа.

тип переменной задекларировать нужно лишь однажды.
но зачем с собой возить декларацию типа переменной 10 местах использования этой переменной - это вопрос.

Затем, что через пол годика, когда понадобиться заглянуть в текст программы /не говоря уже об сторонних разработчиках/ можно
будет в обычном notepad понять, что за тип переменной ...

да зачем в обычном notepad, давай понизим уровень оснащенности до бумаги, нет, до наскальных надписей?

господи, зачем это все открывать в notepad?

Владимир2012Далее развивать суждение не буду /вариации на тему/.

PS: Ваше утверждение почти равносильно следующему диалогу.

- Мне квас нравится.

- Что за дурь несусветная нужно пить ПИВО!
еще один упорствующий?

господа, если вы не вьемлете доводы даже таких людей, как Торвальдс или весь гугл, то что с вами делать? кирпичи об голову разбивать?
хотите делать так как привыкли - делайте. в 20-м веке миллионы людей категорически отказывались на автомобилях ездить и на поездах, чай на телеге сподручнее и привычнее.

ну... тоже они имели на то свои причины, вполне им актуальные и очевидные, бесспорно. но кто сейчас на телегах то ездит?
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276644
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaкак и вся венгерская нотация. как и все эти перловые, PHP-ные и бейсиковские префиксы типа.
...
пока это лечится только статическими анализаторами, но...
В PHP нет жестко заданных типов. Поэтому обобщать не надо. Не нужна она сегодня в С/С++, но это не означает что вообще нигде не нужна.

Как ни странно ее придумали для С, лично я узнал о ней из книги про С, в те времена когда не было статических анализаторов, не было студий с подсказками, код тогда писали в примитивных текстовых редакторах.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276647
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaну... тоже они имели на то свои причины, вполне им актуальные и очевидные, бесспорно. но кто сейчас на телегах то ездит?Привычка-с!
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276651
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tnojavaкак и вся венгерская нотация. как и все эти перловые, PHP-ные и бейсиковские префиксы типа.
...
пока это лечится только статическими анализаторами, но...
В PHP нет жестко заданных типов. Поэтому обобщать не надо. Не нужна она сегодня в С/С++, но это не означает что вообще нигде не нужна.

Как ни странно ее придумали для С, лично я узнал о ней из книги про С, в те времена когда не было статических анализаторов, не было студий с подсказками, код тогда писали в примитивных текстовых редакторах.

имелось в виду использование $ в имени переменной - данная закорючка говорит не о типе, а о назначении (имени) - вот это будет переменной.

вполне себе в духе вон русскоязычной версии статьи о венгерских нотациях.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276653
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaа вот что стоило бы сделать - так это убрать слабую типизацию - и запретить присваивать int в size_t, без явного приведения.
вот это было бы весьма полезно.
так венгерская нотация как-раз помогает порешать проблемы типов, недорешанные разработчиками ЯП.
Одно дело написать
Код: plaintext
1.
2.
3.
4.
int x;
unsigned int y;
... 100500 строк кода
if(x > y)


и
Код: plaintext
1.
2.
3.
4.
int ix;
unsigned int uy;
... 100500 строк кода
if(ix > uy) // написав это невольно задумаешься
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276656
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tif(ix > uy) // написав это невольно задумаешьсяТы что?! Задумываться это не путь людей точно знающих что венгерская нотация это зло во плоти. Они лучше мышкой над переменной помашут в MSVS и узнают тип переменной.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276657
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaвполне себе в духе вон русскоязычной версии статьи о венгерских нотациях.
Если ты всегда писал на ЯП с достаточно жесткой типизацией (С/С++ и т.п.), то тебе не понять проблем тех у кого не было вообще типов переменных, нотация это просто удобный костыль, который позволяет порешать проблему незамеченную разработчика ЯП. Почитай что я писал тут 19428484 .
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276659
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огни "больших" мыслей

[spoiler]
YouTube Video
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276702
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
Код: plaintext
1.
2.
3.
4.
int ix;
unsigned int uy;
... 100500 строк кода
if(ix > uy) // написав это невольно задумаешься


Мне вот не даёт покоя Delphi/Pascal-евский with. Придумал гипотетическое расширение к language.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
int ix;
int iy;
with _ {
   // здесь отключили нотацию.
   ... 100500 строк кода
   if (x>y) // пишем не думая
}
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276706
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaПотому что оба случая ее применения говорят о кодировании типов.
https://ru.wikipedia.org/wiki/Венгерская_нотация это потому, что вот
P.S. хотя, конечно, википедия - это источник знаний для настоящих профессионалов, чё уж ))
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276707
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МодераторКак-то постишь неаккуратно. Ссылка битая все время. ПоправилПервый символ порчу умышленно - для того, чтобы не засорять страницы всякими jpg, ...
Модератор: Клади под спойлер
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276720
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я для своего дипломного проекта создавал API который плотно работал с инженерной графикой.
И мне нужны были префиксы обозначающие точку на плоскости (v2), точку в пространстве (v3),
и нормированную точку (кватернион) (v4). Здесь цифра обозначала размерность. Или количество
double-величин в структуре. Эти-же точки обозначали и вектора. С ними надо было работать много
и плотно и не ошибаться. До тех пор пока я эти префиксы не ввел - не мог побороть кучу багов.

Впрочем это эпизод. Я-бы не стал распространять префиксные нотации везде где ни попадя. Но
для некоторых предметных областей когда есть узкий набор API - вполне себе разумно создавать
домен префиксов. И критиковать за эту активность программиста - никто не имеет права.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276723
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonИ критиковать за эту активность программиста - никто не имеет права.кроме прославленных троллей sql.ru
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276725
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я здесь говорю скорее о моральном праве. Создатель алгоритма или API
помогал себе. Делал маленькие закладочки. Или узелки на память. И никаких
задач глобализации за этим не стояло. Это просто технический приём и не более.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276726
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

И как OpenGL справляется..
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276769
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaSashaMercurynojava, да ладно бы радикальные. Они неверные.

что именно неверное я говорил? даже интересно стало. конкретно?

Далее я пояснил.

SSnojava, да ладно бы радикальные. Они неверные. В чем-то, о чем вы говорите, есть истина, при этом как правило она на поверхности, но что-то из ваших суждений откровенно противоречит принятому положению вещей

Действительно, некоторая часть того, что вы говорите соответствует действительности. Пусть какие-то вещи очевидны, в любом случае, их порой нужно произносить и с ними можно согласиться. Таким образом, я не утверждаю, что всё что вы говорите, неправильно, и я не говорю, что все те очевидные вещи что вы говорите слишком очевидны, чтобы об этом молчать. Тем не менее, за счет того, что с некоторыми вашими утверждениями сложно не согласиться, и их бесспорно можно принять за истину, вы в общем потоке своего сознания добавляете некоторые суждения, которые являются только вашим личным мнением, и никак не общепринятым, и пытаетесь их выдать как неприкасаемые суждения. И за счет этого, складывается двоякое мнение - слушать ли то, что вы говорите?(пусть даже вам безразлично, слушают вас или нет) С одной стороны, возможно это интересно, с другой, если начинаешь читать внимательно, то сложно согласиться со всем. Если бы вы выражали свои взгляды менее радикально, то вероятно не было бы такого эффекта.

Что касается венгерской нотации. Ниже вы привели цитату
авторEncoding the type of a function into the name (so-called Hungarian
notation) is brain damaged - the compiler knows the types anyway and can
check those, and it only confuses the programmer.

Поясню вам. Венгерская нотация создавалась не для программы осуществляющей компиляцию. Она создавалась для программиста. Ее основным назначением является удобство при чтении и анализе кода. Не всегда, когда вы читаете код, вы используете IDE. Кроме того, под венгерской нотацией в настоящее время следует скорее понимать не систему префиксов-типов, а систему префиксов. Где-то данная нотация будет избыточной, где-то она используется неправильно. В каких-то проектах она используется в качестве основной системы нотаций(пусть даже таких проектов мало, мне это не известно), в каких она применяется только локально. Потому неправильно делать столь категоричные выводы
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276775
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaтопик вообще-то не про то, как "помогите подключить библиотеку", а про критику принятых подходов.не, топик не про критику подходов, топик про отсутствие(незнание мной) подходов для быстрой и удобной разработки на сяхх.
nojavaА название проекта можно?можно, но это закрытый проект, код посмотреть нельзя, его нет во внешних cvs.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276878
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaНу... ок, монохромные мониторы окончательно исчезли в 90-хДа и ныне можно установить в Windows режим при котором все страницы будут в монохроме.
Незабываемое зрелище!
Все сайты при этом бывают похожи как близнецы-братья /так как все страусинные перья стали одного цвета/.
Одно время даже использовал эту возможность /хотя монитор позволял отображать цвета/.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276885
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Монохромные TFT LCD матрицы все же существуют.

http://www.winstar.com.tw/products/tft-lcd/monochrome-tft-lcd.html
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276894
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМонохромные TFT LCD матрицы все же существуют.

http://www.winstar.com.tw/products/tft-lcd/monochrome-tft-lcd.html
если серьёзно - в медицинских мониторах монохромные матрицы применяются
https://www.nec-display-solutions.com/p/me/en/products.xhtml
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276911
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Часто при обсуждении "удобств" и "не удобств" в языках программирования высказываются только крайние точки зрения - мол это плохо и наоборот.
При этом забывают, что у всех людей имеются некие свои стили /и в жизни и в программировании/.
И скорее всего нужно быть терпимыми к этому ... /если они не в антогонизме с совестью/.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276920
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012, там пишут:

Backed by years of experience in the research and development of medical LCD displays, NEC
offers a high quality range of true 10-bit grayscale diagnostic monitors featuring an optimal
image quality and performance for digital mammography.


Насколько я разбираюсь, 10-bit уровень серого нельзя получить обычными файловыми форматами
графики. Jpeg - уже не вариант. Он загрубляет до 256 уровней после восстановления из DCT.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39276933
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилесли серьёзно - в медицинских мониторах монохромные матрицы применяются
https://www.nec-display-solutions.com/p/me/en/products.xhtml
Они не монохромные, а черно-белые, т.е. в оттенках серого. По этой ссылке написано "10-bit grayscale"
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39277043
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton10-bit уровень серого нельзя получить обычными файловыми форматами
самый обычный tiff , dng
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39277049
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TОни не монохромные, а черно-белые, т.е. в оттенках серого
хорошо, grayscale - устроит?
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39277189
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonDima T
Код: plaintext
1.
2.
3.
4.
int ix;
unsigned int uy;
... 100500 строк кода
if(ix > uy) // написав это невольно задумаешься


Мне вот не даёт покоя Delphi/Pascal-евский with. Придумал гипотетическое расширение к language.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
int ix;
int iy;
with _ {
   // здесь отключили нотацию.
   ... 100500 строк кода
   if (x>y) // пишем не думая
}




господи, ну что за детский сад!

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
# cat test23.c
int main() {
  int x = 1;
  unsigned int y = 2;

   return (x > y);
}


# gcc test23.c -Wextra

test23.c: In function ‘main’:
test23.c:5:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    return (x > y);
              ^



в остальном аналогично. да, gcc, vs не позволяют поймать переприсваивание разных числовых типов - разных, в части разные typedef от int без проблем переприсваиваются.

но нормальные статические анализаторы - вполне могут пояснить, что ты в переменную типа "номер колонки" присваиваешь тип "номер строки". Нужно просто чуть напрячься и настроить там ключи для такой проверки.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39277194
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryТем не менее, за счет того, что с некоторыми вашими утверждениями сложно не согласиться, и их бесспорно можно принять за истину, вы в общем потоке своего сознания добавляете некоторые суждения, которые являются только вашим личным мнением, и никак не общепринятым
К примеру? где конкретика?


SashaMercuryЧто касается венгерской нотации. Ниже вы привели цитату
авторEncoding the type of a function into the name (so-called Hungarian
notation) is brain damaged - the compiler knows the types anyway and can
check those, and it only confuses the programmer.

Поясню вам. Венгерская нотация создавалась не для программы осуществляющей компиляцию. Она создавалась для программиста. Ее основным назначением является удобство при чтении и анализе кода. Не всегда, когда вы читаете код, вы используете IDE. Кроме того, под венгерской нотацией в настоящее время следует скорее понимать не систему префиксов-типов, а систему префиксов. Где-то данная нотация будет избыточной, где-то она используется неправильно. В каких-то проектах она используется в качестве основной системы нотаций(пусть даже таких проектов мало, мне это не известно), в каких она применяется только локально. Потому неправильно делать столь категоричные выводы

зачем ты говоришь это мне? напиши Торвальдсу (и тысячам разработчиков, которые приняли указанную выше конвенцию) письмо, о том, что ты не brain-damaged, а потом опубликуй ответ?

правила какие-то правильные, применяемые неправильно... о чем вообще речь-то?
он вполне пояснил, что задачу контроля совместимости типов может делать компилятор и лексический анализатор, не надо это принудительно вешать на программиста. и он прав - лишняя информация только затрудняет чтение и понимание кода (это и подразумевается под confused).
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39277222
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Торвальдс не разрабатывал Excel-подобные приложения, и наверное не юзал OpenGL.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39277276
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТорвальдс не разрабатывал Excel-подобные приложения, и наверное не юзал OpenGL.и вообще он говорит о венгерской нотации, исполненной в стиле википедии, а не в стиле от её автора ))
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39277296
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТорвальдс не разрабатывал Excel-подобные приложения, и наверное не юзал OpenGL.
и что в них такого?

и кстати в ядре вовсю префиксы используются, как же без них?

вот тут nr

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/net/netrom/nr_in.c?id=refs/tags/v4.7-rc7

madvise

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/mm/madvise.c?id=refs/tags/v4.7-rc7


вполне себе хорошее правило - использовать имя файла (модуля) как префикс имени публичного символа.
контролировать уникальность имен файлов вполне себе просто, как и написать чекалку публичных имен (кстати, надо взять на вооружение).

egorychmaytonТорвальдс не разрабатывал Excel-подобные приложения, и наверное не юзал OpenGL.и вообще он говорит о венгерской нотации, исполненной в стиле википедии, а не в стиле от её автора ))

и в чем отличия?
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39277300
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojava, то что ты привел - это не Венгерская нотация. Это просто кастомное имя.
Любой кодер так делает интуитивно.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39277302
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonnojava, то что ты привел - это не Венгерская нотация. Это просто кастомное имя.
Любой кодер так делает интуитивно.

да? а что такое венгерская нотация в твоем понимании? ну, на примере OpenGL? бери любое имя функции, и скажи - где там она начинается и где заканчивается.


про "кастомное" имя - это пять. а можешь привести пример некастомного имени? аж интересно стало...
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39277315
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39277318
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychnojavaи в чем отличия? Силы зла завладели венгерской нотацией

и? вот тут описано то-же самое, что и в твоей ссылке выше

https://ru.wikipedia.org/wiki/Венгерская_нотация


а ты так и не ответил на вопрос -

"и вообще он говорит о венгерской нотации, исполненной в стиле википедии, а не в стиле от её автора ))"

в чем отличия стиля википедии от стиля автора? открой в википедии раздел "Префиксы, задающие смысл" и расскажи, чем они отличаются от Apps notation?

в английской https://en.wikipedia.org/wiki/Hungarian_notation тоже говорится ровно то-же, что там пытается рассказать Спольски.


так в чем же суть упомянутых тобой отличий, а?
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39277328
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavamaytonnojava, то что ты привел - это не Венгерская нотация. Это просто кастомное имя.
Любой кодер так делает интуитивно.

да? а что такое венгерская нотация в твоем понимании? ну, на примере OpenGL? бери любое имя функции, и скажи - где там она начинается и где заканчивается.


про "кастомное" имя - это пять. а можешь привести пример некастомного имени? аж интересно стало...
Мне кажется что ты какой-то странный спорщик-оппозиционер. Ты вроде-бы умен но КМК
просто встреваешь в дискурс и занимаешся обструкцией всего.

Я ... честно не хочу ничего доказывать любой ценой. Все что я писал это просто
моё ИМХО. Можешь не соглашаться.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39277329
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonnojavaпропущено...


да? а что такое венгерская нотация в твоем понимании? ну, на примере OpenGL? бери любое имя функции, и скажи - где там она начинается и где заканчивается.


про "кастомное" имя - это пять. а можешь привести пример некастомного имени? аж интересно стало...
Мне кажется что ты какой-то странный спорщик-оппозиционер. Ты вроде-бы умен но КМК
просто встреваешь в дискурс и занимаешся обструкцией всего.

Я ... честно не хочу ничего доказывать любой ценой. Все что я писал это просто
моё ИМХО. Можешь не соглашаться.

Я бы рад с тобой поспорить, но ты, как и предыдущий спорщик - похоже пытаешься говорить о том, о чем не имеешь ни малейшего представления.

Тут вон модератор страницей предыдущей рассказывал, что префиксы модулей в именах функций - это венгерская нотация.
Автор предыдущий сел в лужу увидя какие-то отличия между Спольски и википедией (хотя там === эквивалентность).

Ты же сел в лужу, утверждая, что Торвальдс не разрабатывал крупные системы, вроде Excel и OpenGL, потому он дескать неуч и не в теме.

Когда я тебя прижал к стене и попросил конкретики - что там у Торвальдса не так, в сравнении, ты начал рассказывать что не хочешь метать бисер перед спорщиками.

Хотя вся проблема лишь в том - что ты всего лишь понятия не имеешь о том, о чем пытаешься рассуждать, Торвальдс тут абсолютно не при чем.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39277330
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojava,

нет... это просто удивительно. Ты живешь в мире фантазий брат. Ты просто
додумываешь и дописываешь мне слова которых я не говорил.

Зачем ты это делаешь?
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39277331
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonnojava,

нет... это просто удивительно. Ты живешь в мире фантазий брат. Ты просто
додумываешь и дописываешь мне слова которых я не говорил.

Зачем ты это делаешь?

ты не говорил вот это 19432033

о да, это я грибов наелся наверное и пошел ловить покемонов.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39277332
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaон дескать неуч и не в теме.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39277334
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonnojavaон дескать неуч и не в теме.


ну так это подразумевалось из контекста.

иначе какой смысл был тебе рассказывать про то, что он в чем-то то там не участвовал?
ну он наверное и в паралимпийских играх не участвовал, и что с того?

или с какой целью ты это вот то сказал, про неучастие, как не про констатацию некомпетентности в вопросе?

реально - зачем это было тобой сказано?
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39277339
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojava, вроде уже все согласились что в С/С++ Венгерская нотация не нужна, может дальше поедем? Топик как бэ про другое.
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39277363
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМне кажется что ты какой-то странный спорщик-оппозиционер. Ты вроде-бы умен но КМК
просто встреваешь в дискурс и занимаешся обструкцией всего.


Типичный синдром форумчанина с менее 1000 сообщений.
Это скоро пройдёт, осталось ещё 900...
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39277375
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaАвтор предыдущий сел в лужу увидя какие-то отличия между Спольски и википедией (хотя там === эквивалентность).как то толсто. Спольски противопоставляет, википедия объединяет, где же тут эквивалентность? Читай внимательно, там не много букв, куда меньше, чем в документации по stl))
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39277376
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivТипичный синдром форумчанина с менее 1000 сообщений.
Это скоро пройдёт, осталось ещё 900...да не, это тролль, а вы его кормите зачем то )))
...
Рейтинг: 0 / 0
Удобство и скорость разработки в C++
    #39277381
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кто ж не знает старину Грексхайда
...
Рейтинг: 0 / 0
168 сообщений из 168, показаны все 7 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / Удобство и скорость разработки в C++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]