Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Удобство и скорость разработки в C++
|
|||
|---|---|---|---|
|
#18+
typedef? using! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 13:56 |
|
||
|
Удобство и скорость разработки в C++
|
|||
|---|---|---|---|
|
#18+
CEMbMasterZivУже ж удобнее, нет разве ? Ну, на вид вроде удобно. Но верхние два типа теперь можно через std:: описать. Про остальное судить нельзя без взгляда на реализацию и использование. Описание (иерархии) классов одних и тех же вещей может сильно меняться в зависимости от целей и перспектив развития. Вы не поняли. Тот пример про то, что значения полей можно задать прямо при объявлении, а не где-то в конструкторах, как было раньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 14:01 |
|
||
|
Удобство и скорость разработки в C++
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Прагмы зависят от компилятора, нет возможности расширять их функциональность. Иногда, с моей точки зрения, бывает полезно аннотировать методы. Как пример, полагаю, вы знаете, зачем используется moc компилятор в Qt? Конечно, введя только аннотации, эту проблему не решить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 15:06 |
|
||
|
Удобство и скорость разработки в C++
|
|||
|---|---|---|---|
|
#18+
mayton, Понимаю, как я уже сказал раннее, введя только аннотации, проблему не решить. Но метаданные для класса можно реализовать как опциональную фичу. Как говорится, каждый язык имеет свое применение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 15:10 |
|
||
|
Удобство и скорость разработки в C++
|
|||
|---|---|---|---|
|
#18+
vitprofmayton, Но метаданные для класса можно реализовать как опциональную фичу. Как говорится, каждый язык имеет свое применение. Зачем в С++ нужна эта опциональная фича? Можете привести пример из практики метаданных в С++ который был-бы полезен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 15:38 |
|
||
|
Удобство и скорость разработки в C++
|
|||
|---|---|---|---|
|
#18+
maytonМожете привести пример из практики метаданных в С++ который был-бы полезен?@deprecated был бы полезной фичей, возможно, что и @override бы пригодился. Но я все знания об аннотациях в Яве почерпнул из википедии только что. Может я не всё понимаю об них ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 15:45 |
|
||
|
Удобство и скорость разработки в C++
|
|||
|---|---|---|---|
|
#18+
egorych@deprecated был бы полезной фичей, возможно, что и @override бы пригодился. Но я все знания об аннотациях в Яве почерпнул из википедии только что. Может я не всё понимаю об них ) Эти две уже давно есть )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 15:46 |
|
||
|
Удобство и скорость разработки в C++
|
|||
|---|---|---|---|
|
#18+
CEMbхмм, но мысль про требование от ЯП скорости (и удобства и простоты) разработки, я считаю, разумная. Там мысль "за всё хорошее, против всего плохого". Ещё мысль "динамика -- говно". Т.е. там тупо нет разумных мыслей. Ну и ещё одна мысль "найти лучший в мире язык программирования" тоже дурацкая. Ну не бывает универсальных языков программирования. Надо знать много и применять по необходимости разные в разных случаях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 15:52 |
|
||
|
Удобство и скорость разработки в C++
|
|||
|---|---|---|---|
|
#18+
CEMb MasterZivУже ж удобнее, нет разве ? Ну, на вид вроде удобно. Но верхние два типа теперь можно через std:: описать. Про остальное судить нельзя без взгляда на реализацию и использование. Описание (иерархии) классов одних и тех же вещей может сильно меняться в зависимости от целей и перспектив развития. Вообще -то я имел в виду тупо одну фичу -- инициализация мемберов через инициализаторы в теле класса, а не в каждом из конструкторов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 15:53 |
|
||
|
Удобство и скорость разработки в C++
|
|||
|---|---|---|---|
|
#18+
maytonvitprofmayton, Но метаданные для класса можно реализовать как опциональную фичу. Как говорится, каждый язык имеет свое применение. Зачем в С++ нужна эта опциональная фича? Можете привести пример из практики метаданных в С++ который был-бы полезен? Пример я уже приводил - moc компилятор Qt или ORM на C++. Проблема заключается в том, что сами по себе аннотации мало что дадут. Необходимо реализовать допмеханизмы для работы с классом. Например, найти указатель на метод класса по аннотации и вызвать его. К сожалению, это вряд ли будет реализовано в C++. Можно было бы реализовать дополнительный шаг процесса компиляции после препроцессинга - обработка аннотаций. На этой стадии можно, например, сгенерировать дополнительный C++ код, как это делает mос компилятор Qt, который также генерирует C++ код с метаданными для класса. Ну, можно еще подумать и привести другие примеры. Например, интеграция с IDE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 15:54 |
|
||
|
Удобство и скорость разработки в C++
|
|||
|---|---|---|---|
|
#18+
vitprofmayton, Понимаю, как я уже сказал раннее, введя только аннотации, проблему не решить. Но метаданные для класса можно реализовать как опциональную фичу. Как говорится, каждый язык имеет свое применение. Ещё раз, аннотации -- это костыли. В нормальных языках аннотаций НЕТ. Зачем ты хочешь их тащить в нормальный язык С++ -- не понятно от слова "совсем". Надо добавлять фичи -- надо расширять язык. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 15:56 |
|
||
|
Удобство и скорость разработки в C++
|
|||
|---|---|---|---|
|
#18+
egorychmaytonМожете привести пример из практики метаданных в С++ который был-бы полезен?@deprecated был бы полезной фичей, возможно, что и @override бы пригодился. Но я все знания об аннотациях в Яве почерпнул из википедии только что. Может я не всё понимаю об них ) override уже есть, не в виде аннотации. deprecated -- напиши в документации, в комментарии, или напиши и ещё удали тело (реализацию). Линкер тебе всё скажет, а потом пользователь прочитает в документации, что это -- deprecated. Кстати, deleted можно теперь писать не только к конструкторам ? Интересно, надо глянуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 15:59 |
|
||
|
Удобство и скорость разработки в C++
|
|||
|---|---|---|---|
|
#18+
vitprofmaytonпропущено... Зачем в С++ нужна эта опциональная фича? Можете привести пример из практики метаданных в С++ который был-бы полезен? Пример я уже приводил - moc компилятор Qt или ORM на C++. Проблема заключается в том, что сами по себе аннотации мало что дадут. Необходимо реализовать допмеханизмы для работы с классом. Например, найти указатель на метод класса по аннотации и вызвать его. К сожалению, это вряд ли будет реализовано в C++. Можно было бы реализовать дополнительный шаг процесса компиляции после препроцессинга - обработка аннотаций. На этой стадии можно, например, сгенерировать дополнительный C++ код, как это делает mос компилятор Qt, который также генерирует C++ код с метаданными для класса. Ну, можно еще подумать и привести другие примеры. Например, интеграция с IDE. Да выдумки всё. Не нужны аннотации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 16:02 |
|
||
|
Удобство и скорость разработки в C++
|
|||
|---|---|---|---|
|
#18+
MasterZivВ нормальных языках аннотаций НЕТ. Не буду спорить, но хотелось бы уточнить, что аннотации есть в java, c#. Которые с моей точки зрения нормальные языки. Мало того, в целях кодогенерации аннотации моли бы пригодиться. MasterZivЗачем ты хочешь их тащить в нормальный язык С++ -- не понятно от слова "совсем". 1) Улучшить читаемость кода, 2) Держать все описания в одном месте 3) иметь возможность расширить язык, когда это нужно 4) кодогенерация ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 16:08 |
|
||
|
Удобство и скорость разработки в C++
|
|||
|---|---|---|---|
|
#18+
Вот уже ввели generalized attributes. Наверно, это первый шаг к полноценной реализации аннотаций. Похоже, потребность есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 16:18 |
|
||
|
Удобство и скорость разработки в C++
|
|||
|---|---|---|---|
|
#18+
Рассматривать аннотации в языке как вещь в себе - безсмысленно. Т.к. аннотация с точки зрения 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.). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 16:24 |
|
||
|
Удобство и скорость разработки в C++
|
|||
|---|---|---|---|
|
#18+
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. Q_OBJECT, slots, signals - директивы препроцессора, которые заменяются на пустую строку (по-моему так), но они служат инструкцией для MOC compiler, который генерирует новый C++ код с метаданными класса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 16:42 |
|
||
|
Удобство и скорость разработки в C++
|
|||
|---|---|---|---|
|
#18+
vitprofMasterZivВ нормальных языках аннотаций НЕТ. Не буду спорить, но хотелось бы уточнить, что аннотации есть в java, c#. Которые с моей точки зрения нормальные языки. Ну не смеши нас... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 17:28 |
|
||
|
Удобство и скорость разработки в C++
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyВы не поняли. Тот пример про то, что значения полей можно задать прямо при объявлении, а не где-то в конструкторах, как было раньше. MasterZivВообще -то я имел в виду тупо одну фичу -- инициализация мемберов через инициализаторы в теле класса, а не в каждом из конструкторов.А, так это "давнишняя" фича. Это всё хорошо. Но, согласитесь, описания классов в коде занимают на порядок меньше места, чем методы, а стало быть и код обработки данных. В этом смысле лямбды и всякие stl-ные конструкции, позволяющие не писать много этого самого кода, гораздо полезнее. Ну и, возможно отдельной темой, стоило бы обсудить IDE. Раз уж вспомнили яву, у меня сейчас запущена idea 16 о огромадным проектом и 2013 студия с тем, что я начал делать 28 июня. "пропасть между ними огромна". Даже не затрагивая вещи "удобно-неудобно", можно сказать, во-первых, что студия тормозит. Местами она просто не успевает за мной. Идея, написанная на яве, не тормозит. Ну и удобных фич, "из коробки" у идеи в разы больше. У меня стойкое чувство, что эти две IDE разрабатываются принципиально разными командами. У идеи сами разработчики из своего опыта добавляют недостающие вещи, расстояние от идеи(мысли) до реализации минимальное. В то время как в студии чувствуется длинный путь в багтреккерах, собраниях аналитиков и так далее. Ну это вот у меня сложилось такое чувство. Ладно, это всё печаль и лирика, хотя тоже сильно касается скорости и удобства разработки. PS: 2015 студию не смотрел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 06:40 |
|
||
|
Удобство и скорость разработки в C++
|
|||
|---|---|---|---|
|
#18+
. Раз уж вспомнили яву, у меня сейчас запущена idea 16 о огромадным проектом и 2013 студия с тем, что я начал делать 28 июня. "пропасть между ними огромна". Даже не затрагивая вещи "удобно-неудобно", можно сказать, во-первых, что студия тормозит. да ладно, не разигрывай ... clion так тормозит, что ой ой ой... PS: 2015 студию не смотрел а надо было бы.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 08:16 |
|
||
|
Удобство и скорость разработки в C++
|
|||
|---|---|---|---|
|
#18+
MasterZivда ладно, не разигрывай ... clion так тормозит, что ой ой ой...Clion не смотрел, говорю только за Idea. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 08:37 |
|
||
|
Удобство и скорость разработки в C++
|
|||
|---|---|---|---|
|
#18+
vitprof Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. А добавление Q_OBJECT влияет на RTTI ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 11:02 |
|
||
|
Удобство и скорость разработки в C++
|
|||
|---|---|---|---|
|
#18+
maytonА добавление Q_OBJECT влияет на RTTI? Q_OBJECT это определенный в библиотеке макрос препроцессора, который обрабатывается на стадии компиляции. Ниже код, в который разворачивается этот макрос. Как видите, добавляется статический член класса + декларация нескольких виртуальных функций, реализация которых генерируется MOC compiler. Класс с Q_OBJECT и класс без Q_OBJECT два разных класса по сути. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 11:32 |
|
||
|
Удобство и скорость разработки в C++
|
|||
|---|---|---|---|
|
#18+
MasterZivстудия тормозит Я как перешел на QtCreator перестал даже смотреть на остальные IDE. Летает на любых проектах. Были проблемы с подтормаживанием в некоторых случаях, но это был баг, которых возник и потом был исправлен, а не концептуальное торможение как в Студии )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 13:05 |
|
||
|
Удобство и скорость разработки в C++
|
|||
|---|---|---|---|
|
#18+
vitprofmaytonА добавление Q_OBJECT влияет на RTTI? Q_OBJECT это определенный в библиотеке макрос препроцессора, который обрабатывается на стадии компиляции. Ниже код, в который разворачивается этот макрос. Как видите, добавляется статический член класса + декларация нескольких виртуальных функций, реализация которых генерируется MOC compiler. Класс с Q_OBJECT и класс без Q_OBJECT два разных класса по сути. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Меня интересует. Если есть некий интерфейс типа удалённого вызова. На который приходит не всегда специфицированный объект (сеть фигли). Есть ли у меня возможноть удостовериться что твои мета-теги или аннотации или еще бох весть какие сущности присутствуют в наличии. Тоесть что-то вроде: Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 13:33 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39269525&tid=2018471]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 10ms |
| total: | 127ms |

| 0 / 0 |
