Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++

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

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

30.04.2015, 10:51. Просмотров 8753. Ответов 140

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

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

Модем должен ждать прихода смс - C++ Builder
Всем, привет! Вообщем все почти реализовал для GSM модема, умею отправлять читать и стирать смс, но есть один вопросик, а как можно сделать...

Как ждать выполнения определенной функции - C++ Builder
Добрый вечер! Такая задача: Клиент-Сервер, передача файла по UDP (не ругайтесь, такое задание=)) При передаче очередного пакета,...

Задать команду в COM-порт, ждать 500мс и посмотреть ответ - C++ Builder
Всем привет! Кстати, мой первый пост на этом форуме. И так, реализовал работу с портом, все работает. На основе COMThread-3 (WINAPI).rar...

Не ждать завершения запущенной внешней программы - C++
Я запускаю из своей программы внешний экзешник при помощи system(command). Но данный вариант меня не устраивает, т.к. приходится ждать...

Как заставить поток ждать в некоторых ситуациях - C++
Есть такой сценарий приложения: Приложение до запуска TCP кеширует данные из MySQL в std::vector, далее запускается TCP и ожидаются...

Как заставить прогу на с++ ждать новые записи из БД - C++
Нужно чтобы прога на с++ ждала новых записей в БД и если они поступят производила с ними кое какие действия Вопрос в том как именно...

140
ct0r
Игогошка!
1784 / 686 / 42
Регистрация: 19.08.2012
Сообщений: 1,321
Завершенные тесты: 1
03.10.2015, 13:34  [ТС] #61
Цитата Сообщение от Avazart Посмотреть сообщение
В линухах?
Ага, там. В винде посложнее, но достаточно один раз все нормально автоматизировать.

Цитата Сообщение от Avazart Посмотреть сообщение
А где там доксиген?
Нигде, на что я и намекаю. Потому что в принципе он не нужен. Точнее: он может быть нужен только тогда, когда ты автор либы, исходные коды которой не выдаешь.

Цитата Сообщение от Avazart Посмотреть сообщение
Ну я вот тоже в сомнения. Скорее всего подсунут какую-то вялую альтернативу include в духе предоткомпилированых заголовков и pragma once
Какие сомнения? Основная цель модулей - ускорить сборку во много раз, чтобы не надо было уже сражаться на мечах на работе.
1
gng
674 / 520 / 139
Регистрация: 08.09.2013
Сообщений: 1,372
03.10.2015, 13:41 #62
Цитата Сообщение от hoggy Посмотреть сообщение
монитор тут же фиксит, что файл изменился.
регекспами парсит инклюды, находит изменения,
ему уже известен список всех библиотек, доступных рабочему пространству.
он догадывается, что у данной цели есть зависимость от boost-filesystem,
и автоматом добавляет зависимость для данной цели сборки.
По задумке, модули должны стать стандартным решением таких проблем. Пишешь
C++
1
import boost.filesystem
вместо включения заголовка, и если модуль установлен, то больше ничего и не надо.
Как колучится на деле - сложно сказать, скорее всего - "как всегда".
0
Avazart
Эксперт С++
7574 / 5559 / 327
Регистрация: 10.12.2010
Сообщений: 24,934
Записей в блоге: 17
03.10.2015, 14:08 #63
Цитата Сообщение от gng Посмотреть сообщение
вместо включения заголовка, и если модуль установлен, то больше ничего и не надо.
Ну так а в чем отличие от #include, или задумка в том что бы он сам додумывался с чем линковать вдобавок?

Допустим у нас:
C++
1
import boost.regex
Что делать с макросами типа BOOST_REGEX_MATCH_EXTRA ?
см http://habrahabr.ru/post/64226/

Цитата Сообщение от ct0r Посмотреть сообщение
Нигде, на что я и намекаю. Потому что в принципе он не нужен. Точнее: он может быть нужен только тогда, когда ты автор либы, исходные коды которой не выдаешь.
Че? Я вам привел ссылки на примеры реальных проектов.
При чем тут вообще выдача исходных файлов? Как раз на оборот применяют его как раз в открытых проектах что бы другие разработчики имели удобную док с навигацией, графами зависимостей итп.
0
gng
674 / 520 / 139
Регистрация: 08.09.2013
Сообщений: 1,372
03.10.2015, 14:39 #64
Цитата Сообщение от Avazart Посмотреть сообщение
Ну так а в чем отличие от #include, или задумка в том что бы он сам додумывался с чем линковать вдобавок?
Ну да. Вместо девелоперской версии либы + заголовков устанавливается модуль.
То, что при этом все проблемы не решатся, а также появятся новые, как бы, и не оспаривается.
0
Fulcrum_013
Заблокирован
03.10.2015, 16:01 #65
Цитата Сообщение от Avazart Посмотреть сообщение
Ну я вот тоже в сомнения. Скорее всего подсунут какую-то вялую альтернативу include в духе предоткомпилированых заголовков
при том что проблема решается элементарно - добавлением
#pragma link(modulename) в инклюд-файл.
Цитата Сообщение от hoggy Посмотреть сообщение
программист не должен тратить время на написание скриптов.
Поэтому в IDE уже более 20 присутствует понятие проект и две кнопки - добавить файл (исходник или obj) в проект и убрать из проекта.
0
Dmitriy_M
1400 / 1283 / 119
Регистрация: 20.03.2009
Сообщений: 4,575
Записей в блоге: 11
03.10.2015, 16:08 #66
Цитата Сообщение от Avazart Посмотреть сообщение
Ну собирать весь буст только ради ..
Чё? Как бы можно перечислить какие библиотеки нужны, и собрать только то что нужно.
Цитата Сообщение от hoggy Посмотреть сообщение
программист не должен тратить время на написание скриптов.
Вот это и есть детсад.
Цитата Сообщение от hoggy Посмотреть сообщение
умный автомат должен сам догадаться,
Покажите мне эти умные автоматы?
Цитата Сообщение от hoggy Посмотреть сообщение
но тут возникла проблема - cmake слишком медленный.
Не заметил что он медленный. Не нравится CMake, есть SCons и будет скорость Python.
Цитата Сообщение от hoggy Посмотреть сообщение
студия покажет окошко "зафиксированы изменения извне".
Дайте студию под GNU/Linux, что бы писать под Embedded Linux.
Цитата Сообщение от hoggy Посмотреть сообщение
в связи с чем возникла проблема распространения самого воркспейса.
Нет никаких проблем, скомпилил и отдал.
Цитата Сообщение от hoggy Посмотреть сообщение
для одной только студии vc12 ставился с раннего вечера и до обеда следующего дня.
Как интересно. У меня на кросс компиляцию буста
Цитата Сообщение от hoggy Посмотреть сообщение
нужно сопровождать релизный кроссплатформенный продукт.
уходит минут 30. ЧЯДН?
Цитата Сообщение от hoggy Посмотреть сообщение
нужно сопровождать релизный кроссплатформенный продукт.
Чё? У меня целевые платформы: Mac OS X; CentOS 5/6/7; Ubuntu 12/14; Synology DSM; QNap QTS. Все автоматически собирается и готовые пакеты кладутся в репозторий. Все собирается статически и на выходе только бинарники.
Много ли из этой документации почерпнешь? Удобней сам код читать.
Бред сторонников идеи: "Код сам должен говорить о себе".
0
Fulcrum_013
Заблокирован
03.10.2015, 16:11 #67
Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Бред сторонников идеи: "Код сам должен говорить о себе".
Ну тогда Керниган и Ритч только и делали что бредили
0
hoggy
6813 / 3001 / 516
Регистрация: 15.11.2014
Сообщений: 6,795
Завершенные тесты: 1
03.10.2015, 17:38 #68
Цитата Сообщение от ct0r Посмотреть сообщение
Прям искусственный интеллект какой-то.
на самом деле - тупой как пробка.

Цитата Сообщение от ct0r Посмотреть сообщение
Это типа мне нужно только код написать, а оно остальное сделает?
ага.
есть свои несложные правила.
например, имена подкаталогов "unit_test" система воспринимает как каталоги целей,
которые содержат юнит тесты.

допустим у вас есть каталог, с исходным кодом библиотеки.
и вы захотели реализовать для неё юнит тесты,
можно просто создать там же подкаталог "unit_test",
и уже можно закидывать туда исходники с тестами.

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

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

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

проблема доксигена - это на самом деле проблема человеческой лени.

Цитата Сообщение от ct0r Посмотреть сообщение
Конечно забавно, но подходит только для примитивных случаев
все такие случаи - примитивны.

Цитата Сообщение от ct0r Посмотреть сообщение
А что с ним?
я ж вроде подробно расписал этот момент выше.
его многие вообще не любят.
а тут ещё нужно скачивать, и ставить - это время.

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

Цитата Сообщение от ct0r Посмотреть сообщение
Это как-то странно. Я на двух работах обновлял буст и компилятор - несколько часов и никаких проблем.
несколько часов - это очень долго.
это запредельно долго.

это можно себе позволить если буст
штатно используется в проекте.

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

Цитата Сообщение от ct0r Посмотреть сообщение
Общеиспользуемые штуки, требования к которым у всех примерно одинаковые
ну дык, о том и речь: см #51

очень классная идея:
не иметь проблем с деплоем общеиспользуемых штук.

Цитата Сообщение от ct0r Посмотреть сообщение
Или ты думаешь, что ту же lock-free скоро перетащат?
не знаю, как насчет "скоро",
но когда комитет все таки признал существование тредов,
то появление всяких мутексов/атомиков стало неизбежным.
ну а лок-фри - думаю это вопрос времени.
имхо.

и там уже сейчас полным полно каких то маловразумительных штук,
на основе которых всякие спинлоки изготавливаются.
http://en.cppreference.com/w/cpp/atomic/memory_order

Цитата Сообщение от Avazart Посмотреть сообщение
Тоже самое перекодирование строк, юникод ...
здесь подвижки уже имеются.

Добавлено через 3 минуты
Цитата Сообщение от gng Посмотреть сообщение
если модуль установлен
мне не очевидно,
что значит "если установлен",
и что нужно сделать "что бы его установить".

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

Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Не нравится CMake, есть SCons и будет скорость Python.
проблема скунса в том, что он проиграл симейку
конкуренцию за круг потребителей.

Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Вот это и есть детсад.
считаете, что это очень по взрослому:
тратить время на рутину, когда можно было бы и не тратить?
долбаться, когда можно было бы и не долбаться?

ну долбайтесь дальше.

Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Дайте студию под GNU/Linux, что бы писать под Embedded Linux.
под линуксами - QtCreator, как наиболее близкая по "цивилизованности" ИДЕ.

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

Цитата Сообщение от Dmitriy_M Посмотреть сообщение
уходит минут 30. ЧЯДН?
телепаты в отпуске.

Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Нет никаких проблем, скомпилил и отдал.
а потом человек пишет, что у него ни черта не взлетает.
и начинается...

Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Чё?
нужно ещё убедиться, что под всеми платформами все заводится как часики,
и не напрягает пользователя тупыми ошибками.

начиная от деплоя и заканчивая функциональностью.

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

в общем, не нужно мне "ля-ля тополя, у нас все с первого раза взлетает".
я как бе знаю, как оно бывает в реальном и несовершенном мире.
1
gng
674 / 520 / 139
Регистрация: 08.09.2013
Сообщений: 1,372
03.10.2015, 21:47 #69
Цитата Сообщение от hoggy Посмотреть сообщение
мне не очевидно,
что значит "если установлен",
и что нужно сделать "что бы его установить".
Точно так же, как библиотеки устанавливаете. У вас в Венде, я полагаю, это означает 1)скачать 2)распаковать 3)указать среде разработки, где находится.
0
ct0r
Игогошка!
1784 / 686 / 42
Регистрация: 19.08.2012
Сообщений: 1,321
Завершенные тесты: 1
03.10.2015, 23:29  [ТС] #70
Цитата Сообщение от Avazart Посмотреть сообщение
Че? Я вам привел ссылки на примеры реальных проектов.
При чем тут вообще выдача исходных файлов? Как раз на оборот применяют его как раз в открытых проектах что бы другие разработчики имели удобную док с навигацией, графами зависимостей итп.
Ок, давай я переформулирую свою мысль.
Doxygen - крутая штука, если ее правильно применять. Но на это правильное применение уходит столько времени, что этим почти никто не занимается. И считается, что можно просто писать кое-какие комменты ко всем классам, функциям и т.д. в doxygen-стиле - и этого довольно. Типа остальное doxygen сделает сам - прям конфетка будет. А вот нифига - без должного отношения получается очередная бесполезная хреновина, которая ничем не облегчает жизнь.

Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Бред сторонников идеи: "Код сам должен говорить о себе".
А ты пишешь код, который говорит о воде на Марсе? Это печально. Вообще каким боком это относится к моему высказыванию? Я что, запрещаю писать доку? Читай посты целиком и глазами внимательнее.

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

Цитата Сообщение от hoggy Посмотреть сообщение
ну а лок-фри - думаю это вопрос времени.
Просто это крайне сложно написать адекватно, не привязываясь к платформе, чтобы подходило под большое число юз-кейсов и обладало высокой производительностью.
0
hoggy
6813 / 3001 / 516
Регистрация: 15.11.2014
Сообщений: 6,795
Завершенные тесты: 1
04.10.2015, 02:13 #71
Цитата Сообщение от gng Посмотреть сообщение
Точно так же, как библиотеки устанавливаете.
выше вы писали:
Цитата Сообщение от gng Посмотреть сообщение
По задумке, модули должны стать стандартным решением таких проблем.
мне не понятно: как это модули могут порешать проблемы библиотек,
если собираются/ставятся/подключаются они точно так же, как библиотеки?

Цитата Сообщение от gng Посмотреть сообщение
У вас в Венде, я полагаю
у меня винде, и бубунт.

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

Цитата Сообщение от ct0r Посмотреть сообщение
doxygen чаще применяется для создания видимости документации, а не самой документации.
всяко лучше, чем ничего.

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

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

Цитата Сообщение от ct0r Посмотреть сообщение
Просто это крайне сложно написать адекватно, не привязываясь к платформе
просто буст - полигон для испытаний.
как то же в нем разные вещи реализуются.
и как показывает практика - дозревают,
и их узаканивают.
0
gng
674 / 520 / 139
Регистрация: 08.09.2013
Сообщений: 1,372
04.10.2015, 15:04 #72
Цитата Сообщение от hoggy Посмотреть сообщение
мне не понятно: как это модули могут порешать проблемы библиотек,
если собираются/ставятся/подключаются они точно так же, как библиотеки?
Вы писали выше, что ваш монитор после добавления в исходники, например, инклуда заголовка,
Цитата Сообщение от hoggy
догадывается, что у данной цели есть зависимость от boost-filesystem ,и автоматом добавляет зависимость для данной цели сборки.
Модульная архитектура должна, по задумке, делать то же. Модуль совмещает в себе библиотеку и заголовки. Прописав импорт модуля вы сразу добавляете зависимость, не нужно отдельно подключать библиотеку. Теоретически должна исчезнуть путаница в сопоставлении библиотек различных версий и их заголовков.
Поможет ли это конкретно в вашей ситуации, не знаю,
тем болле что мои знания о модулях ограничены просмотром ссылок наподобе той, что была приведена выше.

Не по теме:

Ваш монитор (судя по вашему описанию) мне тоже показался несерьёзным решением, по сравнения с тем же cmake.
У меня ситуация проще (если, конечно, интересно). Поскольку нет нужды сборки в разных IDE - даже cmake оказался излишним.
Где возможно, использую autotools, где нет - тупо пишу в Мэйкфайлах разные цели для Венды и Линукса. Вендовые программы (во втором случае) собираю под Линуксом кросс-компилятором.

0
hoggy
6813 / 3001 / 516
Регистрация: 15.11.2014
Сообщений: 6,795
Завершенные тесты: 1
04.10.2015, 15:52 #73
Цитата Сообщение от gng Посмотреть сообщение
Модульная архитектура должна, по задумке, делать то же. Модуль совмещает в себе библиотеку и заголовки. Прописав импорт модуля вы сразу добавляете зависимость, не нужно отдельно подключать библиотеку.
понял.
здесь уместна аналогия с виндузятной #pragma comment(lib

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

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

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

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

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

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

Цитата Сообщение от gng Посмотреть сообщение
Ваш монитор (судя по вашему описанию) мне тоже показался несерьёзным решением, по сравнения с тем же cmake.
какое то странное у вас сравнение,
учитывая, что монитор - лишь реал-тайм гвард,
а всю работу делает cmake.

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

Цитата Сообщение от gng Посмотреть сообщение
Где возможно, использую autotools, где нет - тупо пишу в Мэйкфайлах разные цели для Венды и Линукса.
проект Workspace задумывался специально для того,
что бы не тратить время на подобную рутину.
0
cybercitizen
04.10.2015, 19:41
  #74

Не по теме:

Цитата Сообщение от ct0r Посмотреть сообщение
Но я, изучая его, никогда не думаю о том, чтобы запихать его в продакшен куда-либо.
А зря, есть люди, которые уже подумали и запихнули.
P.S. как я рад что мы вобще не используем c++ в работе. Где надо хардкорим си, где нет надобности используем dsl.

0
ct0r
Игогошка!
1784 / 686 / 42
Регистрация: 19.08.2012
Сообщений: 1,321
Завершенные тесты: 1
04.10.2015, 19:56  [ТС] #75
Цитата Сообщение от cybercitizen Посмотреть сообщение
А зря, есть люди, которые уже подумали и запихнули.
Рад за них. Впрочем, и у нас есть части, написанные на хаскелле. Но это к сожалению. Потому что когда начали искать хаскеллистов (даже на условия выше рынка), то на собеседование пришло народу - по пальцам пересчитать - и то какие-то тугие.

Цитата Сообщение от hoggy Посмотреть сообщение
всяко лучше, чем ничего.
Лучше б в вики писали, если неохота doxygen нормально осиливать.

Цитата Сообщение от hoggy Посмотреть сообщение
однако, если вместе с либой идут юнит-тесты,
и экземплы - очень даже все на уровне получается.
На примерах и юнит-тестах далеко не уедешь. Точнее, как средний разработчик, - может и уедешь, а как старший или лид - уже нет. Нужна многоуровневая документация и с разных точек зрения.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2015, 19:56
Привет! Вот еще темы с ответами:

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

Как заставить машину ждать перед очередным выполнением цикла? - C++
есть код#include <stdio.h> #include <iostream> #include <conio.h> using namespace std; int main(int argc, char *argv) { ...

Определите вероятность того, что Ариса будет ждать зеленого света не более k секунд. - C++
На одном из перекрестков Тель-Авива установлен светофор, который горит зеленым светом g секунд, а красным r секунд. Ариса подходит к...

Начинаем рисовать - Turbo Pascal
Привет всем. Вот простой код: ... gd:=VGA;gm:=VGAhi; InitGraph(gd,gm,''); if(GraphResult=grOk)then begin line(0,0,520,210); ...


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

Или воспользуйтесь поиском по форуму:
75
Ответ Создать тему
Опции темы

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