@ProCxx

Страница 2233 из 2477
Constantine
25.07.2018
17:06:33
в std такие нельзя, хотя памятуя, что комитет - тролли, вполне могут принять

Andrey спасибо)

Andrey
25.07.2018
17:13:14
Andrey спасибо)
Не за что. Кстати, по результатом нашей предыдущей дискуссии у меня родился такой квиз: Что выведет эта программа? #include <type_traits> #include <iostream> std::true_type is_const(int const &) { return {}; } std::false_type is_const(int &) { return {}; } int main() { int x = 0; [y = x, x] { std::cout << std::boolalpha << is_const(x).value << '\n' << is_const(y).value << '\n' << decltype(is_const(x))::value << '\n' << decltype(is_const(y))::value << '\n' << std::is_const_v<decltype(x)> << '\n' << std::is_const_v<decltype(y)> << '\n' ; } (); } Подсказка: Clang, GCC и MSVC выдают разные ответы. Логически объяснить (по крайней мере на моем уровне знаний), можно только результат MSVC.

Constantine
25.07.2018
17:14:35
я вангую, что в MSC будет все false)

Google
Aidar
25.07.2018
17:15:36
@antoshkka

Andrey
25.07.2018
17:15:56
я вангую, что в MSC будет все false)
нет, первые 4 — true, что в общем-то логично

Aidar
25.07.2018
17:16:00
Свежее мясо

Constantine
25.07.2018
17:16:42
в clang все true, если я правильно понял godbolt?

Aidar
25.07.2018
17:17:15
Так а int a; void foo() const{ decltype(a)//int&? }

Constantine
25.07.2018
17:17:23
а, ой боже, оно может считать, что x это не const, а y это const

Andrey
25.07.2018
17:18:51
Constantine
25.07.2018
17:19:05
о_О

О_О

Andrey
25.07.2018
17:19:28
И вот это меня добивает — и clang и gcc дают разное в evaluated и non-evaluated контексте

Alexander Alprog
25.07.2018
17:21:47
а x и y хоть где-то влияет?

Google
Alexander Alprog
25.07.2018
17:22:24
> нет, первые 4 — true, что в общем-то логично

в msvc нет разницы между вызовами x и y получается. в clang тоже. в gcc есть разница?

Constantine
25.07.2018
17:22:49
#include <type_traits> #include <iostream> #include <array> constexpr std::true_type is_const(int const &) { return {}; } constexpr std::false_type is_const(int &) { return {}; } int main() { int x = 0; [y = x, x] { std::cout << is_const(x).value << is_const(y).value << decltype(is_const(x))::value << decltype(is_const(y))::value << std::is_const_v<decltype(x)> << std::is_const_v<decltype(y)> ; } (); }

а если вот так?

constexpr добавить, короче?

у меня чувство будто в gcc ответы 110101

в clang соответственно 110000

Andrey
25.07.2018
17:24:59
Это правильный ответ

Andrey
25.07.2018
17:25:57
Constantine
25.07.2018
17:26:23
прочитано!

пипец, вообще-то, согласен с призывом antony

Aidar
25.07.2018
17:32:24
комитет приди

порядок наведи

Constantine
25.07.2018
18:09:33
Так что GCC ведёт себя верно clang ведёт себя неверно для y msvc ыообще не в теме
Я не понял, почему is_const(x).value и decltype(is_const(x))::value дают разные результаты

Google
Constantine
25.07.2018
18:11:37
Т.е. вообще почему в decltype выражении была выбрана & перегрузка в const функции-члене класса?

Это просто выглядит как баг независимо от

Xessao
25.07.2018
18:15:36
Ребята, не стоит вскрывать эту тему. Вы молодые, шутливые, вам все легко. Это не то. Это не исходники STL и даже не архивы GCC. Сюда лучше не лезть. Серьезно, любой из вас будет жалеть. Лучше закройте тему и забудьте, что тут писалось. Я вполне понимаю, что данным сообщением вызову дополнительный интерес, но хочу сразу предостеречь пытливых - стоп. Остальные просто не найдут.

Constantine
25.07.2018
18:17:54
@antoshkka https://godbolt.org/g/82KU6V яннп, но это определенно крякает как баг

Александр
25.07.2018
18:18:00
Ох, какие темные, ужасные дебри

Constantine
25.07.2018
18:19:53
выглядит, будто в decltype выражении clang и gcc банально неправильно выполняют overload resolution в этом примере

Xessao
25.07.2018
18:20:24
Александр
25.07.2018
18:20:48
Надо было учить Rust.
Еще не поздно.

Xessao
25.07.2018
18:21:12
Еще не поздно.
(пора отсюда валить пока нас не убили)

Александр
25.07.2018
18:22:09
(пора отсюда валить пока нас не убили)
Я уже присоединился к чатику Раста.

Constantine
25.07.2018
18:22:42
Ребята, не стоит вскрывать эту тему. Вы молодые, шутливые, вам все легко. Это не то. Это не исходники STL и даже не архивы GCC. Сюда лучше не лезть. Серьезно, любой из вас будет жалеть. Лучше закройте тему и забудьте, что тут писалось. Я вполне понимаю, что данным сообщением вызову дополнительный интерес, но хочу сразу предостеречь пытливых - стоп. Остальные просто не найдут.
ВСЁ UB, ВСЁ В НОГУ, МИНУС НОГА, ЗНАКОВОЕ ЦЕЛОЧИСЛЕННОЕ ПЕРЕПОЛНЕНИЕ ПРОБИВАЕТ НОГУ, ПЕРЕГРУЖЕННЫЙ ОПЕРАТОР, НАПИСАТЬ НАДО ХОТЯ БЫ HELLO WORLD, SFINAE КОД АЙАЙАЙАЙ КАКОЙ ЖЕ TWO PHASE NAME LOOKUP У ТОЛСТОЙ СКАТИНЫ, СМОТРИТ ВАРНИНГИ КОМПИЛЯЦИИ ТАМ НИЧЕГО НЕТ, ПОДКЛЮЧАЕТ ПИВАС СТУДИЮ ОШИБОК НЕТ, ЗДЕСЬ МАЙКРОСОФТ ПЫТАЕТСЯ ЧТО-ТО СДЕЛАТЬ ИХ ТУТ ЖЕ УБИВАЕТ НОВЫЙ СТАНДАРТ ISOCPP! НА ODR VIOLATION ПОПАДАЮТ ВСЕ, АЛЕКСАНДРЕСКУ УХОДИТ ПРОСТО В D, ОДНОНОГИЙ СТРАУСТРУП, ОДНОНОГИЙ МЕЙЕРС, МОЖНО ЛИВАТЬ, ЭТО НЕ ЯЗЫК ПРОГРАММИРОВАНИЯ ЭТО ПРОСТО ПОШЛИ ОНИ НА

Constantine
25.07.2018
18:24:06
Не читая сохранил.
можно заканчивать "ПОШЛИТЕ ВСЕ В RUST"

Xessao
25.07.2018
18:24:24
Вообще годнота.

Constantine
25.07.2018
18:24:33
я старался)

Antony
25.07.2018
18:24:44
@antoshkka https://godbolt.org/g/82KU6V яннп, но это определенно крякает как баг
Сделал вот такой приерчик https://godbolt.org/g/egXM4w Задам вопрос писателям компиляторов

Xessao
25.07.2018
18:25:34
@antoshkka, сколько у тебя в день уходит килограмм курева?

Constantine
25.07.2018
18:26:18
Сделал вот такой приерчик https://godbolt.org/g/egXM4w Задам вопрос писателям компиляторов
Мой пример вроде можно сразу репортить в gcc/clang, потому что внутри decltype неправильно выполнен overload resolution

@antoshkka можно вот так, если делать статический пример https://godbolt.org/g/j96vxS

Google
Constantine
25.07.2018
18:34:37
MSVC не может в лямбды в constexpr, хех

Stanislav
25.07.2018
18:38:59
Zodiak
25.07.2018
18:39:24
Кто практиковал шифрование файлов на AES?

Stanislav
25.07.2018
18:40:17
MSVC не может в лямбды в constexpr, хех
на godbolt версия 15.0, нужна 15.3 и выше

A.D.
25.07.2018
18:41:54
Antony
25.07.2018
18:43:26
https://godbolt.org/g/6JikjH

Stanislav
25.07.2018
18:43:34
почему автор godbolt не обновляет msvc это уже другой вопрос

Constantine
25.07.2018
18:47:52
https://godbolt.org/g/6JikjH
но decltype(is_const(x)) это же совершенно точно std::true_type пруфлинк https://godbolt.org/g/9XKfHR

Antony
25.07.2018
18:50:04
Завтра подумаю над вопросом y похоже должен быть const, так как он не intervening (что бы это не значило... надо наверное уточнить у компиляторо писателей) c переменными из внешнего scope Правильный тест кажется должен быть такой: https://godbolt.org/g/PcWDSf с decltype знатная упячка, но кажется она вылезает из необходимости иметь одинаковые результаты для -> decltype(что-то) написанного для лямбды

Constantine
25.07.2018
18:50:57
Alexander
25.07.2018
20:13:10
https://blog.jetbrains.com/clion/2018/07/clion-2018-2-clangd-gradle-compdb-sanitizers/

Kotbegemot
25.07.2018
20:39:05
где-то был серверный шарп на линухе.
А не кто sol2 не использовал ?

Chiveson
25.07.2018
21:56:00
https://blog.jetbrains.com/clion/2018/07/clion-2018-2-clangd-gradle-compdb-sanitizers/
я все еще жду удаленную сборку и норм удаленную отладку)

Alexey
25.07.2018
22:13:13
"Recompile a single file A small but neat feature was added to speed up your development cycles in CLion when working with CMake or compilation database projects. Now you can recompile a single file without triggering the full project recompilation. This is really handy for checking local files changes:"

!

Вот это - круто

Alexander
25.07.2018
22:13:31
ну как бы джва года ждал

Alexey
25.07.2018
22:13:39
ибо для cmake это просто не сделать. даже руками в сонсоли

Google
Ignat
25.07.2018
22:55:58
Dmitry
25.07.2018
23:23:57
вторая по естественности - использование policy-based intrusive с явным указанием возможности многопоточности, вычисленного по целевому типу
intrusive не избавляет от необходимости синхронизации при shared доступе если persistent структура глобальная. А переиспользование ресурса потребует блокировки на всё время модификации.

Andrey
26.07.2018
05:32:09
почему автор godbolt не обновляет msvc это уже другой вопрос
Из-за отсутствия лицензии на MSVC. Та версия, которая есть на сайте это личная инициатива Andrew Pardoe, который больше в Microsfot не работает.

Andrey
26.07.2018
05:34:18
https://godbolt.org/g/GLgEh6
Это выглядит уже совсем курьезно

А что там не так?
Не так с чем? Версия MSVC на сайте старая. А взять (пусть даже купить) последнию SDK от Microsoft и дать всем желающим с ее помощью что-то компилировать не позволяет лицензия.

Constantine
26.07.2018
05:37:24
Или именно что на сайте отдельную версию не обновляют?

Andrey
26.07.2018
05:39:52
Я, конечно, ничего в этих вопросах не понимаю, но говорят, что лицензия написана так, что так скорее перечислено, что делать можно, а не написано, что делать нельзя. Так вот среди разрешенного нет пункта "можно давать всем желающим в интернете компилировать код".

Или именно что на сайте отдельную версию не обновляют?
То что сейчас на сайте это, грубо говоря, внутренняя (рабочая) сборка из Microsoft, а не готовый продукт, соответственно, на нее лицензия не распространяется.

Dmitry
26.07.2018
06:07:47
не понял
Складывается впечатление что речь про COW и if unique то in-place modification.

Constantine
26.07.2018
06:08:16
Dmitry
26.07.2018
06:11:52
COW строки растут из этой же идеи, да
Если поток модификации сам раздает новые версии читателям то наверное это имеет смысл. А вот если они сами копируют себе версию, значит это происходит под блокировкой и в этом случае in place модификация потребует удержания блокировки на всё время модификации.

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