@ProCxx

Страница 2435 из 2477
Assasin
15.10.2018
10:44:48
ну надеюсь. По сути видится не очень сложным в реализации компиляторами, а удобства и читаемости прибавляет прилично

+ уходит пласт проблем с fallthrough в части случаев

Stanislav
15.10.2018
10:46:26
Alexander
15.10.2018
10:47:07
да, это получше constexpr! :D
это вообще ужос, я считаю

Google
Antony
15.10.2018
10:47:36
хм

Spoonson
15.10.2018
10:49:14
О! http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1235r0.pdf
а как же аргументы мол что переносимость пострадает? в стандартной либе что-то использует simd например, а в другой реализации нет.

Alex Фэils?︙
15.10.2018
10:49:14
это навряд ли может быть причиной. поменяют синтаксис просто. как это делается с метаклассами
кмк, лучше б синтаксис был такой: const Vec3 opengl_color = switch(c) { red => Vec3(1.0, 0.0, 0.0) yellow => Vec3(1.0, 1.0, 0.0) green => Vec3(0.0, 1.0, 0.0) blue => Vec3(0.0, 0.0, 1.0) };

Antony
15.10.2018
10:50:12
Вот это вообще огонь http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1135r1.html Хочу ожидание на атомиках в стандартной библиотеке!!

Assasin
15.10.2018
10:51:00
constexpr(true)
а может посмотреть в сторону атрибутов? [[constexpronly]] constexpr bool isXXX(...) { ... }

Egor
15.10.2018
10:51:04
было б неплохо
так вот вроде его скинули implicit constexpr

Alexander
15.10.2018
10:51:18
Ага, этот аргумент остаётся
я не понимаю аргумента

Spoonson
15.10.2018
10:51:40
а как пострадает переносимость?
constexpr int value = std::some_function(); и вот для some_function не определено в стандарте должна ли она соответствовать constexpr стандартам.

Antony
15.10.2018
10:51:41
а может посмотреть в сторону атрибутов? [[constexpronly]] constexpr bool isXXX(...) { ... }
Атрибуты не должны влиять на компилируемость кода. Так что не очень зайдёт

Google
Spoonson
15.10.2018
10:52:38
но в Стандарте функции, которые constexpr, помечаются constexpr
ну, придется тогда все остальные пометить как constexpr(false)

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

Alexander
15.10.2018
10:53:29
ай, чорт. эта дискуссия в разрезе того пропозала :)

Это я упустил :) прошу прощения. Тогда с Вами согласен

Antony
15.10.2018
10:58:27
Ещё очень хорошая штука http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1285r0.pdf Позволит найти ошибки в тех местах, о которых никто и не догадывался )

И ещё mmap http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1031r1.pdf

Alexander
15.10.2018
11:02:11
Max
15.10.2018
11:02:37
Вот эти последние 2 — очень круты

Вот это вообще огонь http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1135r1.html Хочу ожидание на атомиках в стандартной библиотеке!!
а вот тут я не понял. Какая-то гиперспециализация получается. Это вроде всё и так легко реализуется на существующих атомиках, только то, что есть — гораздо гибче.

Antony
15.10.2018
11:09:05
Оно должно выглядеть как-то вот так: https://github.com/boostorg/sync/blob/develop/include/boost/sync/events/auto_reset_event.hpp

Max
15.10.2018
11:09:48
а вот тут я не понял. Какая-то гиперспециализация получается. Это вроде всё и так легко реализуется на существующих атомиках, только то, что есть — гораздо гибче.
Как-то странно будет стандарт выглядеть, если в нём это окажется, но при этом семафоры нужно будет всё ещё делать на мютексе и кондваре)

Ilia
15.10.2018
11:14:31
а чо нет?
Ну, очень развесистая концепция, и совсем не в духе С++.

Assasin
15.10.2018
11:17:52
а switch вообще не развесистый

Google
Ilia
15.10.2018
11:18:35
Это утверждение?

Assasin
15.10.2018
11:18:46
да, саркастическое

Ilia
15.10.2018
11:20:02
Ну switch не развесистый. Он простой по концепции. Есть сравнение и константы типов, всё на этом строится.

Alex Фэils?︙
15.10.2018
11:20:24
надо сделать operator switch() для классов, и в нем делать всякие стркмп и то, что душе угодно

Assasin
15.10.2018
11:21:13
он простой по реализации, а вот по концепции как раз сложный: нужно понимать, что можно пихать в switch, как работает fallthrough и объявление переменных в блоке switch

Max
15.10.2018
11:22:02
есть же POSIX https://linux.die.net/man/7/sem_overview или я чего-то не понял?
в posix есть, а в стандарте нет. Если хочется переносимости — приходится делать свой семафор

Max
15.10.2018
11:24:28
Увы, но реализровать это очень нетривиально Например ожидание на атомиках требует использования futex на Linux
ага. Уловил. Это не спинлоки, а блокирование, передающее управление при неудачном локе, но не использующее API ядра. Тогда, пожалуй, полезно.

Assasin
15.10.2018
11:25:29
Чего? что там сложного?
когда уже разобрался в нем - ничего, только машинальные ошибки можно совершить. Новичку же совсем не очевидно, что строки пихать туда вредно, выражения никак нельзя и т.п. А паттернматчинг работает изначально так, как ожидается, и со стоторны компилятора может в простых случаях оптимизироваться не хуже switch-а

ну это все на мой взгляд, конечно

Ilia
15.10.2018
11:27:12
ну это все на мой взгляд, конечно
Вот именно, что на твой.

Assasin
15.10.2018
11:27:55
ну как видишь, не мне одному нравится паттерн матчинг)

Дед Пегас
15.10.2018
11:29:02
Да ладно. Паттерн матчик дичайше удобная штука.

Assasin
15.10.2018
11:29:31
просто не стоит городить дичи, если неясно, как работает switch. Если непонятно - юзаешь break после каждого case-а, и не заводишь переменные внутри.
ну это очевидно, что голову на плечах нужно иметь в любом случае. Речь же об удобстве и читаемости. switch очевидно в этом проигрывает

Евгений
15.10.2018
11:30:12
ну я в целом не против высокоуровневых фич, вроде паттерн-матчинга. Лишь говорю, что все недостатки switch - в том, что слишком много на него пытаются возложить

Ilia
15.10.2018
11:30:21
Да ладно. Паттерн матчик дичайше удобная штука.
Ну вот так чтобы я спал и видел чтобы он был в С++ -- так нет.

Google
Дед Пегас
15.10.2018
11:31:36
Вот прям щас пишу код, где по кейсу крайне полезным был бы паттерн матчинг.

А так-то мы и без constexpr можем прожить. Да и без лямбд остаётся функции и std::bind. ;P

Spoonson
15.10.2018
11:45:00
Александр
15.10.2018
12:01:19
Пример можешь показать? Кусочек?
Любой код, где идёт активная работа с variant. Вместо overload-костылей прекрасно можно использовать pattern matching.

vldanch
15.10.2018
12:17:00
Добрый день комрады, можете подсказать по такому вопросу, активно изучаю разработку vst плагинов. Из можно из под unix среды как то тестировать, я так понимаю если уж ведётся разработка, то дебаг своего приложения надо осуществлять на винде, или я не прав?

Sergey
15.10.2018
12:29:45
А причем тут С++? Впрочем, audacity работает и под linux.

Ilia
15.10.2018
12:32:57
Но вот там написано, что Audacity поддерживает плагины эффектов, но не инструментов... (ну и странно было бы)

vldanch
15.10.2018
12:36:21
А где можно более детально на эту тему почитать инфу?

Ilia
15.10.2018
12:38:22
Да хрен знает...

Aoudour или как его там, есть на лине и должен VST поддерживать.

https://ardour.org/features.html -- написано, что может.

Я давно его пощупать хочу...

vldanch
15.10.2018
12:46:27
https://m.habr.com/post/224911 Я только это нашёл на тему создания плагинов, но из под юниксов это я так понимаю не запустить

vldanch
15.10.2018
12:55:42
Что нам понадобится Mac с Xcode 4 или выше, или Windows с Visual Studio C++ 2010 или выше

Vitaly
15.10.2018
14:53:27
Улетели в @supapro.

Google
Antony
15.10.2018
14:54:07
Вот зачем вы так с человеком... Даже задание не дослушали до конца. Может там надо вывести это в compile time

Andrew
15.10.2018
14:54:45
Именно вывести, не создать в памяти, а вывести. Причем циклом!

Antony
15.10.2018
14:55:50
Дык с этого начинали - выводили факториал в сообщение компилятора об ошибке

Страница 2435 из 2477