Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/67: Рейтинг темы: голосов - 67, средняя оценка - 4.73
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
1

С++17. Начинаем ждать?

30.04.2015, 10:51. Показов 12496. Ответов 140

Author24 — интернет-сервис помощи студентам
https://isocpp.org/files/papers/D4492.pdf

Как думаете, в правильном ли направлении идет развитие? Что вы хотите видеть в С++17? Какую фичу ждете больше всего?
4
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.04.2015, 10:51
Ответы с готовыми решениями:

С чего начинаем
Давайте прикинем, с чего начать оптимизацию, не сильно портить при этом белый сайт всяким гавном)...

Начинаем рисовать
Привет всем. Вот простой код: ... gd:=VGA;gm:=VGAhi; InitGraph(gd,gm,'');...

Начинаем делать сайт
Может давайте вместе начнем делать сайт и общими усилиями может у нас что нибудь получится) Сначала...

Начинаем изучать JAVA
В этом паке лежат лекции и задания к ним. В лекциях все довольно просто. Часть материала взята из...

140
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
06.10.2015, 20:21  [ТС] 81
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от hoggy Посмотреть сообщение
я кстати, имел ввиду комплексное решение: докси, юнит-тесты, экзамплы.
Ну тогда да.

Цитата Сообщение от hoggy Посмотреть сообщение
ну а викки - доксиген лень поддерживать в нормальном состоянии,
какая уж там викки...
На вики проще. Плюс обычно там все равно часть документации лежит - для бизнеса и сторонних людей.

Цитата Сообщение от cybercitizen Посмотреть сообщение
А если соискатель инвалид? И головастик, дело знает. Это прямое нарушение его конституционных прав. В РФии это нормально?
Мое мнение - бизнес имеет право нанимать тех, кого хочет, и не нанимать тех, кого не хочет. У каждой компании своя культура - одни требуют чтобы человек активно общался и взаимодействовал с командой, участвовал в нетехнической жизни компании и формировал хорошую коллективную обстановку (причем это в какой-то мере можно назвать частью работы), а другим достаточно, чтобы винтики работу делали в срок, и неважно - удаленно или как.
0
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
06.10.2015, 20:44 82
Цитата Сообщение от ct0r Посмотреть сообщение
Мое мнение - бизнес имеет право нанимать тех, кого хочет, и не нанимать тех, кого не хочет.
так и есть.

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

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

вторая проблема: такого человека трудно уволить.
например, инвалидов запрещено увольнять всвязи с сокращениями.
и тп.

все вместе - и многие конторы не хотят связываться.
0
cybercitizen
07.10.2015, 01:30
  #83

Не по теме:

Цитата Сообщение от ct0r Посмотреть сообщение
Мое мнение - бизнес имеет право
Само собой, но есть правовое поле в котором этот бизнес работает. Иначе это не бизнес, а банда.

0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
23.11.2016, 10:01 84
Цитата Сообщение от XRuZzz Посмотреть сообщение
например автор книги "О Haskell, по человечески", он намного больше меня работал на C++, лет 7 вроде.
Я знаком с ним лично, цифру надо как минимум умножить в два раза.

Добавлено через 11 минут
Очень хотелось модулей (которых увы, не будет в С++17), работу с ФС, range v3, многопоточные алгоритмы STL, std::any, std::variant, определение типа шаблона для конструкторов.
0
Avazart
24.11.2016, 12:13
  #85

Не по теме:

Цитата Сообщение от MrGluck Посмотреть сообщение
Очень хотелось модулей
Я не понимаю когда говорят о модулях, в чем фишка?

0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
24.11.2016, 12:18 86
Цитата Сообщение от Avazart Посмотреть сообщение
Я не понимаю когда говорят о модулях, в чем фишка?
В избавлении гемороя при компиляции, переход на новую систему сборки. То есть мы избавимся от .h файлов, будем писать только .cpp. Сейчас уже есть две реализации - от clang и Microsoft, обе имеют свои плюсы и минусы и они, конечно, несовместимы между собой.
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
24.11.2016, 13:23 87
И что в итоге получится?
Модули Delphi с секциями interface и implementation ?
0
Ушел с форума
Эксперт С++
16473 / 7436 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
24.11.2016, 13:34 88
Цитата Сообщение от Avazart Посмотреть сообщение
Я не понимаю когда говорят о модулях, в чем фишка?
В скорости сборки.

Например, у меня проект из многих тысяч файлов, почти каждый из
них включает Windows.h, string, vector и еще многие заголовки.
И при компиляции каждого .cpp или .c файла каждый раз выполняется
обработка этих заголовков, что явно избыточно и тормозит весь процесс.

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

Кстати, из-за раздельной компиляции сборка в C/C++ на порядки
медленнее, чем в Delphi, например.
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
24.11.2016, 14:03 89
Разве тогда не придется решать проблему с шаблонами?
0
Ушел с форума
Эксперт С++
16473 / 7436 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
24.11.2016, 14:09 90
Не знаю. Мне кажется, это лишь еще одна техническая сложность.
Никто ведь не мешает шаблоны тоже делать частью модулей. Главное, что сама система
компиляции будет другой, с уходом от многократной обработки одних и тех же файлов.
0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
24.11.2016, 14:14 91
Цитата Сообщение от Avazart Посмотреть сообщение
Разве тогда не придется решать проблему с шаблонами?
Некоторые компиляторы уже умеют инстанцировать шаблоны в другой единице трансляции.
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
24.11.2016, 14:43 92
Цитата Сообщение от MrGluck Посмотреть сообщение
Некоторые компиляторы уже умеют инстанцировать шаблоны в другой единице трансляции.
Ну так в другой единице как я полагаю породит туже проблему с многократной обработкой одного и того же кода.

Т.е если я использую в многих файлах std::vector<std::string> "инстанцироваться" будет же столько же раз сколько и файлов?
Или я ошибаюсь?

Цитата Сообщение от Убежденный Посмотреть сообщение
Не знаю. Мне кажется, это лишь еще одна техническая сложность.
Ну так многие идеи упираются и глохнут именно в техническую сложность, опять же тот же экспорт шаблонов.
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
24.11.2016, 15:31 93
Цитата Сообщение от Убежденный Посмотреть сообщение
Например, у меня проект из многих тысяч файлов, почти каждый из
них включает Windows.h, string, vector и еще многие заголовки.
И при компиляции каждого .cpp или .c файла каждый раз выполняется
обработка этих заголовков, что явно избыточно и тормозит весь процесс.
Обработка нужна всегда, а скомпилируются cpp файлы ваших Window.h и т.д. только один раз. Всё верно - что именно не нравится?
0
Ушел с форума
Эксперт С++
16473 / 7436 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
24.11.2016, 15:55 94
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
а скомпилируются cpp файлы ваших Window.h и т.д. только один раз. Всё верно - что именно не нравится?
source1.cpp
C++
1
#include <Windows.h>
source2.cpp
C++
1
#include <Windows.h>
...

source10000.cpp
C++
1
#include <Windows.h>
Не нравится, что 10000 исходных файлов = 10000 раз компиляция Windows.h.
Подключим модули - компиляция будет однократная.
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
24.11.2016, 16:03 95

Не по теме:

Убежденный, Вероятно rikimaru2013 имел ввиду что IDE обычно отслеживают изменения и компилируют только модифицированные сpp.

Но если компиляция с нуля или модификация коснулась заголовков...



Вопрос в том будет ли компиляция проектов c STL и boost действительно быстрее (там как бы одни шаблоны в принципе)
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
24.11.2016, 16:15 96
Avazart, да я и про полную компиляцию тоже) *.cpp в списке скомпилируемых файлов будет 1 раз, а подключение *.h это не более чем вставка всего текста, что несёт объявление, declaration.

Компилируем 1 раз - линкуемся к нему много раз. Что не так то? Убежденный, А чем компиляция отличается на 999 строчке #include <Windows.h> от первой? Это всего лишь incldue текста, который помогает компилятору и линковщику.
0
Ушел с форума
Эксперт С++
16473 / 7436 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
24.11.2016, 16:29 97
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
подключение *.h это не более чем вставка всего текста, что несёт объявление, declaration.
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Компилируем 1 раз - линкуемся к нему много раз. Что не так то? Убежденный, А чем компиляция отличается на 999 строчке #include <Windows.h> от первой? Это всего лишь incldue текста, который помогает компилятору и линковщику.
Заголовки бывают очень большие (Windows) и тяжелые (Boost), и чем больше
исходных файлов включают такие заголовки, тем больше замедляется время сборки.

Это как постоянное копирование больших объектов по значению, в то время
как эффективнее было бы копировать их по ссылке или указателю...

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

Не, ну если тебя устраивает скорость компиляции C++ и то, что при компиляции
многократно выполняется синтаксический разбор одних и тех же заголовков, то я пас.
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
24.11.2016, 16:37 98
Убежденный, ну вот мы уже определились, что *.h файлы не компилируются, а лишь влияют на синтаксический разбор, что по понятным причинам замедляет сборку. Я вполне доволен скоростью сборки проектов С++, ведь я правильно веду архитектуру )) Думаю модули добавят свои минусы и плюсы.
0
Ушел с форума
Эксперт С++
16473 / 7436 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
24.11.2016, 17:00 99
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
*.h файлы не компилируются, а лишь влияют на синтаксический разбор, что по понятным причинам замедляет сборку.
О чем и речь.
И чем больше проект - тем больше это замедление ощущается.

Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Я вполне доволен скоростью сборки проектов С++, ведь я правильно веду архитектуру ))
Поделишься секретами правильного ведения архитектуры?

Минимизация зависимостей, pimpl, forward declarations, отказ от реализаций в
заголовочных файлах и т.д. - это все давно известно, но желаемого профита не дает.
Все равно у C/C++ по сравнению с Delphi, C# и т.п. скорость компиляции просто
отвратительно медленная и то, что в других языках компилируется за секунды, в
C/C++ занимает минуты и даже часы.

Да, если у тебя N исходных файлов и каждый подключает <string>, то синтаксический
разбор <string> будет выполняться N раз. И никакой архитектурой это не исправишь.
Извращения с запихиванием всего кода в один большущий cpp-файл не рассматриваем.
1
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
24.11.2016, 17:18 100
Цитата Сообщение от Убежденный Посмотреть сообщение
Минимизация зависимостей, pimpl, forward declarations, отказ от реализаций в
заголовочных файлах и т.д. - это все давно известно, но желаемого профита не дает.
Ну замеры до и после, позволяет сказать об ускорении в2-3 раза. Что очень много) Да и умная компиляция IDE - только измененных ускоряет процесс разработки. Итого: не более минуты идёт компиляция изменений. А полная перекомпиляция ... . Я не стремлюсь за её скоростью - ведь в это время я пью чай с печеньками)
1
24.11.2016, 17:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.11.2016, 17:18
Помогаю со студенческими работами здесь

OSI , TCP/IP с чего начинаем?
подскажите литературу по OSI , TCP/IP с чего начинаем?

Начинаем изучать Hibernate, Struts и Spring
Цель: изучить Hibernate, Struts и Spring. Вопросы: Какие знания необходимы/желательны для...

Поставили GF5200.Начинаем подключать привод-все виснет.
Ребят,тут у меня вопрос,помогите если кто знает.У системника не было привода и видюхи.Был...

Начинаем программировать на C++, C#, ассемблере(win), Qt, Python, Java, AS3.
Начинаем программировать на C++, C#, ассемблере(win), Qt, Python, Java, AS3. Какой язык для...


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

Или воспользуйтесь поиском по форуму:
100
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru