Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
 
ct0r
Игогошка!
1762 / 664 / 42
Регистрация: 19.08.2012
Сообщений: 1,261
Завершенные тесты: 1
#1

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

30.04.2015, 10:51. Просмотров 6030. Ответов 125

https://isocpp.org/files/papers/D4492.pdf

Как думаете, в правильном ли направлении идет развитие? Что вы хотите видеть в С++17? Какую фичу ждете больше всего?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2015, 10:51     С++17. Начинаем ждать?
Посмотрите здесь:

Turbo Pascal Начинаем рисовать
Как ждать выполнения определенной функции C++ Builder
Как заставить прогу на с++ ждать новые записи из БД C++
Как заставить машину ждать перед очередным выполнением цикла? C++
Не ждать завершения запущенной внешней программы C++
C++ Теперь C++11 - полностью и на сто процентов новый C++: чего ждать
Модем должен ждать прихода смс C++ Builder
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gru74ik
Модератор
Эксперт CЭксперт С++
3925 / 1683 / 189
Регистрация: 20.02.2013
Сообщений: 4,743
Записей в блоге: 21
01.10.2015, 19:10     С++17. Начинаем ждать? #41
Цитата Сообщение от zenden2k Посмотреть сообщение
Вот это очень жду. Этот кошмар с инклудами должен когда-то закончиться.
Цитата Сообщение от Убежденный Посмотреть сообщение
Но больше всего, пожалуй, жду модулей. Надеюсь, что заголовки, раздельная
компиляция и мрак с .h/.lib/.obj, а также препроцессинг/метапроцессинг
навсегда уйдут в прошлое и будет у нас быстрая компиляция и минимум
головной боли, с этими вещами связанной.
Мечты сбываются.
zenden2k
43 / 28 / 8
Регистрация: 21.04.2015
Сообщений: 82
01.10.2015, 19:49     С++17. Начинаем ждать? #42
gru74ik, здорово, но непонятно, что будет с шаблонами в модулях.
gng
628 / 474 / 128
Регистрация: 08.09.2013
Сообщений: 1,226
01.10.2015, 21:10     С++17. Начинаем ждать? #43
Цитата Сообщение от zenden2k Посмотреть сообщение
но непонятно, что будет с шаблонами в модулях.
Как я понял, шаблоны как были в заголовках, так и останутся. В модулях можно будет шаблонить, только прописав инстанциированые реализации, а это мало кому понравится.

Не по теме:

Запасаемся попкорном и следим за очередной интригой. Появится четвертый крупный клан "Приплюснутых" из идеологических Явовцев и Хэшевцев, или модули поглотятся третьим кланом - любителями визуальных сред? После введения альфа-функций отдельного клана функциональщиков не образовалось, а ниша была поглощена вторым кланом - Страусятами, любителями stl и boost.

Avazart
01.10.2015, 22:33
  #44

Не по теме:

Цитата Сообщение от gng Посмотреть сообщение
любителями визуальных сред
А они та при чем тут?
Вроде для визуального программирования ничего пока не сделано...

gng
01.10.2015, 22:59
  #45

Не по теме:

Цитата Сообщение от Avazart Посмотреть сообщение
А они та при чем тут?
Я имел в виду фреймворковцев, тобиш КуТешников, Билдеровцев и т.д. Думается, что модули им как раз к месту будут.

volvo
01.10.2015, 23:03
  #46

Не по теме:

Если бы Билдеровцам нужны были модули - они бы давно стали Дельфистами

gng
01.10.2015, 23:08
  #47

Не по теме:

Цитата Сообщение от volvo Посмотреть сообщение
они бы давно стали Дельфистами
Так они почти и стали. :-)

Avazart
01.10.2015, 23:12
  #48

Не по теме:

Цитата Сообщение от gng Посмотреть сообщение
Думается, что модули им как раз к месту будут.
Какому месту?

Fulcrum_013
650 / 718 / 72
Регистрация: 14.12.2014
Сообщений: 5,631
Завершенные тесты: 3
01.10.2015, 23:31     С++17. Начинаем ждать? #49
Цитата Сообщение от ct0r Посмотреть сообщение
Как думаете, в правильном ли направлении идет развитие?
Это не развитие а деградация к скриптовому языку
Цитата Сообщение от ct0r Посмотреть сообщение
Что вы хотите видеть в С++17?
STL за борт,запрет на интрисики, Борландовские расширения синтаксиса в стандарт.
Цитата Сообщение от ct0r Посмотреть сообщение
Какую фичу ждете больше всего?
Арифметики над массивами на уровне компилятора. С появлением векторных процов оптимизатору без этого будет все сложнее.
А так же очень бы хотелось иметь возможность вызова виртуальных функций из конструктора.

Добавлено через 3 минуты

Не по теме:

Цитата Сообщение от gng Посмотреть сообщение
Так они почти и стали. :-)
Это дельфа почти стала С++. Только ключевые слова сишные вместо паскалевских сделай, в все остальное уже до С++ дотянули за уши. Да дельфа и была в исходе сишным компилятором с воткнутой в него паскалевской таблицей парсинга.


Не по теме:


Добавлено через 3 минуты

Цитата Сообщение от Avazart Посмотреть сообщение
Вроде для визуального программирования ничего пока не сделано...
для визуального достаточно RTTI. А возможность откючать визуальщину и пользовать свой фреймверк тоже штука полезная даже в Билдере. Еще бы хорошо было возможность свой фреймверк вместо стандартных в визуальный редактор подключать.

Avazart
01.10.2015, 23:35
  #50

Не по теме:

Fulcrum_013,Не пори фигню... иди лучше книжку почитай...

hoggy
6158 / 2524 / 443
Регистрация: 15.11.2014
Сообщений: 5,583
Завершенные тесты: 1
02.10.2015, 20:16     С++17. Начинаем ждать? #51
Цитата Сообщение от ct0r Посмотреть сообщение
Для этого есть много либ, причем очень специализированных. Зачем брать в стандарт некую компромиссную, которая удовлетворяет всех, но на очень среднем уровне?
потому что уж очень востребованно.
что провоцирует дополнительные зависимости от сторонних библиотек.
со сборкой которых по итогу придется долбаться клиентам вашей библиотеки.

вот у меня например была проблема:
для работы нужна была кроссплатформенная либа для работы с файловой системой.

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

с юникодом примерно аналогичная ситуация,
хотя и не так все запущенно.
ct0r
Игогошка!
1762 / 664 / 42
Регистрация: 19.08.2012
Сообщений: 1,261
Завершенные тесты: 1
02.10.2015, 21:35  [ТС]     С++17. Начинаем ждать? #52
hoggy, совсем не убедил. Никаких проблем не вижу.
Dmitriy_M
1338 / 1219 / 111
Регистрация: 20.03.2009
Сообщений: 4,352
Записей в блоге: 11
02.10.2015, 22:33     С++17. Начинаем ждать? #53
Цитата Сообщение от hoggy Посмотреть сообщение
вынуждать клиентов поиметь зависимость от boost,
Детсад.
FCommander
Респект C++
22 / 32 / 5
Регистрация: 11.06.2015
Сообщений: 384
02.10.2015, 22:56     С++17. Начинаем ждать? #54
Для новичков был бы неплох Unicode.
Я заметил также, что очень часто на форуме задают вопрос - "Русский язык в консоли". Это надоедает. Надо доработать.

Добавлено через 2 минуты
Ну а лично для меня было бы неплохо, как в Pascal простое окно без иниц. Qt или WinAPI.

Добавлено через 4 минуты
Пусть какие-нибудь операторы появятся. Ну как в Pascal:
Pascal
1
2
uses GraphABC;
uses Robot;
Ну а в C++(простите за фантазию) бы могло выглятеть типа:
C++
1
2
#include <graphcpp>
#include <robot>
Хотя graphics.h уже есть.
Иными словами - облегчение работы.
Avazart
7063 / 5240 / 262
Регистрация: 10.12.2010
Сообщений: 23,058
Записей в блоге: 17
02.10.2015, 23:13     С++17. Начинаем ждать? #55
Цитата Сообщение от ct0r Посмотреть сообщение
hoggy, совсем не убедил. Никаких проблем не вижу.
Ну собирать весь буст только ради ... или речь шла о разделяемых библиотеках?
hoggy, Только я не понимаю как модули тут помогут?

Добавлено через 3 минуты
Цитата Сообщение от FCommander Посмотреть сообщение
Ну а в C++(простите за фантазию) бы могло выглятеть типа:
Че?
hoggy
6158 / 2524 / 443
Регистрация: 15.11.2014
Сообщений: 5,583
Завершенные тесты: 1
02.10.2015, 23:48     С++17. Начинаем ждать? #56
Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Детсад.
пример из жизни:

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

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

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

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

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

например, программист сидит в вижал-студии и правит исходный файл.
он дописал строку:
C++
1
#include <boost/filesystem>
и кликнул на кнопку "сохранить".

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

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

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

но есть проблема:
монитор, и сопутствующие утилиты зависят от буста.

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

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

после чего можно уже спокойно начинать работать.

но для этого нужен буст, причем буст нужно ещё найти.

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

ну, на самом деле это не проблема.
проблема в доступности самого буста.

1.
многие его не любят.
в принципе.

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

2.
развернуть его из деплоя - это время.
например, на моем ноуте 1.57.0
для одной только студии vc12 ставился с раннего вечера и до обеда следующего дня.

а у меня вся эта затея - ради кросс-платформы.
это как минимум ещё mingw,
и gcc тулчейны

и все это в 32 и 64 версиях.

вот сейчас вышел новый буст,
я даже обновляться не хочу.

3.
я не нашел цивилизованных альтернатив.

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

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

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

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

C++
1
2
3
#include<regex>
#include<filesystem>
...
и никакого геммороя.

Добавлено через 5 минут
Цитата Сообщение от ct0r Посмотреть сообщение
совсем не убедил.
как думаете, что убедило комитет к сегодняшнему дню
перетащить в стандартную библиотеку уже львиную часть буста?

а то ведь могло и дальше в бусте валяццо.
проблем же нет никаких?

Добавлено через 43 секунды
Цитата Сообщение от Avazart Посмотреть сообщение
Только я не понимаю как модули тут помогут?
а хз.
я вообще себе смутно представляю что это, и нафига они нужны.
ct0r
Игогошка!
1762 / 664 / 42
Регистрация: 19.08.2012
Сообщений: 1,261
Завершенные тесты: 1
03.10.2015, 12:35  [ТС]     С++17. Начинаем ждать? #57
Цитата Сообщение от hoggy Посмотреть сообщение
суть изначальной идеи - предоставить не программный подход к сборке продуктов.
что бы кастомизировать сборку,
программист не должен тратить время на написание скриптов.
умный автомат должен сам догадаться,
что нужно для сборки продукта.
Прям искусственный интеллект какой-то. Это типа мне нужно только код написать, а оно остальное сделает?

Цитата Сообщение от hoggy Посмотреть сообщение
поддержка доксигена,
Он хоть раз помогал? Как по мне, так бесполезная штука.

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

Цитата Сообщение от hoggy Посмотреть сообщение
проблема в доступности самого буста.
А что с ним? В дистрибутивах давненько есть пакеты.

Цитата Сообщение от hoggy Посмотреть сообщение
многие его не любят.
в принципе.
Ну С++ тоже многие не любят...

Цитата Сообщение от hoggy Посмотреть сообщение
развернуть его из деплоя - это время.
например, на моем ноуте 1.57.0
для одной только студии vc12 ставился с раннего вечера и до обеда следующего дня.
а у меня вся эта затея - ради кросс-платформы.
это как минимум ещё mingw,
и gcc тулчейны
и все это в 32 и 64 версиях.
вот сейчас вышел новый буст,
я даже обновляться не хочу.
Это как-то странно. Я на двух работах обновлял буст и компилятор - несколько часов и никаких проблем.

Цитата Сообщение от hoggy Посмотреть сообщение
как думаете, что убедило комитет к сегодняшнему дню
перетащить в стандартную библиотеку уже львиную часть буста?
а то ведь могло и дальше в бусте валяццо.
проблем же нет никаких?
Так ты посмотри, что именно перетащили. Общеиспользуемые штуки, требования к которым у всех примерно одинаковые. Или ты думаешь, что ту же lock-free скоро перетащат?
Avazart
7063 / 5240 / 262
Регистрация: 10.12.2010
Сообщений: 23,058
Записей в блоге: 17
03.10.2015, 12:49     С++17. Начинаем ждать? #58
Цитата Сообщение от ct0r Посмотреть сообщение
Он хоть раз помогал? Как по мне, так бесполезная штука.
А по мне очень полезная штука для документации.

Добавлено через 7 минут
Цитата Сообщение от hoggy Посмотреть сообщение
перетащить в стандартную библиотеку уже львиную часть буста?
Как по мне слишком поздно и слишком мало.
К примеру что мешало переташить алгоритмы для работы со строками типа обрезки строк trim() из boost ?
Как бы элементарная штука и при том нужная, а нет....
Тоже самое перекодирование строк, юникод ...

Добавлено через 1 минуту
Цитата Сообщение от hoggy Посмотреть сообщение
а хз.
я вообще себе смутно представляю что это, и нафига они нужны.
Ну я вот тоже в сомнения. Скорее всего подсунут какую-то вялую альтернативу include в духе предоткомпилированых заголовков и pragma once
ct0r
Игогошка!
1762 / 664 / 42
Регистрация: 19.08.2012
Сообщений: 1,261
Завершенные тесты: 1
03.10.2015, 12:52  [ТС]     С++17. Начинаем ждать? #59
Цитата Сообщение от Avazart Посмотреть сообщение
А по мне очень полезная штука для документации.
Много ли из этой документации почерпнешь? Удобней сам код читать. А документация должна быть написана подобно тому, как описано например в
https://leanpub.com/software-archite...for-developers
или
http://www.amazon.com/Software-Archi.../dp/0321815734
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2015, 13:04     С++17. Начинаем ждать?
Еще ссылки по теме:

Задать команду в COM-порт, ждать 500мс и посмотреть ответ C++ Builder
Начинаем изучать JAVA Java SE
Как заставить поток ждать в некоторых ситуациях C++
Начинаем делать сайт Web

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

Или воспользуйтесь поиском по форуму:
Avazart
7063 / 5240 / 262
Регистрация: 10.12.2010
Сообщений: 23,058
Записей в блоге: 17
03.10.2015, 13:04     С++17. Начинаем ждать? #60
Цитата Сообщение от ct0r Посмотреть сообщение
А что с ним? В дистрибутивах давненько есть пакеты.
В линухах? В винде нужно изобретать самому - т.е. если кроссплатформенно, то тоже самому.
В конечном итоге выходит нечто вроде онлайн инсталятора как для Qt, а значит большая морока для разработчика.

Добавлено через 1 минуту
Цитата Сообщение от ct0r Посмотреть сообщение
Много ли из этой документации почерпнешь? Удобней сам код читать. А документация должна быть написана подобно тому, как описано например в
https://leanpub.com/software-archite...for-developers
или
http://www.amazon.com/Software-Archi.../dp/0321815734
А где там доксиген? Левые какие-то ссылки....

Добавлено через 5 минут
ct0r, К примеру http://api.kde.org/4.x-api/kdeedu-ap...kerReader.html

Или другие примеры https://www.stack.nl/~dimitri/doxygen/results.html
Yandex
Объявления
03.10.2015, 13:04     С++17. Начинаем ждать?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru