@ProCxx

Страница 2285 из 2477
Alexander
16.08.2018
13:21:52
кто-нибудь тестил новый препроцессор у vs 15.8?

Ilia
16.08.2018
13:22:08
при компиляции должен быть флаг -g, при сборке не должно быть -s. Плюс к этому хорошо бы -O0

Google
Ilia
16.08.2018
13:22:54
кто-нибудь тестил новый препроцессор у vs 15.8?
Я боюсь ставить, меня Толя со Стасом напугали...

Anatoly
16.08.2018
13:25:18
Антон
16.08.2018
13:25:43
при компиляции должен быть флаг -g, при сборке не должно быть -s. Плюс к этому хорошо бы -O0
да, с -g и компилил ,точней думал так, оказалось был немного коряво написан makefile, только после того как препроверил наткнулся... Спасибо.

Если что, makefile не мой)

Yarique
16.08.2018
14:26:11
кто-нибудь тестил новый препроцессор у vs 15.8?
Lol эта версия мне не понравилась, когда компилятор стал out of heap space от шаблончиков средней сложности

Если есть жирные std::tuple как контейнеры типов - он не может компилить

У меня есть constexpr std::tuple 290 размера

И он вообще не компилится

На 15.8

На 15.7.6 - всё норм

https://developercommunity.visualstudio.com/content/problem/296784/158-regression-fatal-error-c1060-compiler-is-out-o.html Тоже ссылаются на боль с шаблонами в visual studio 15.8

Egor
16.08.2018
14:29:59
Thank you for your feedback! We have fixed the problem in an upcoming release 16.0 Preview 1. Thank you for helping us build a better Visual Studio!

ждём 16.0)

Google
Yarique
16.08.2018
14:32:15
Всем кто обновился советую откатиться https://docs.microsoft.com/en-us/visualstudio/productinfo/installing-an-earlier-release-of-vs2017#installing-the-earlier-release

Stanislav
16.08.2018
14:37:14
Alex Фэils?︙
16.08.2018
14:37:31
Да

Egor
16.08.2018
14:37:35
видимо выйдет после 1809 с новыми аби

Yarique
16.08.2018
14:37:39
Да, я не нашёл как установить 16.0 preview 1

Stanislav
16.08.2018
14:37:49
на след неделе видимо появится

Anatoly
16.08.2018
14:51:32
https://developercommunity.visualstudio.com/content/problem/296784/158-regression-fatal-error-c1060-compiler-is-out-o.html Тоже ссылаются на боль с шаблонами в visual studio 15.8
ну, твою хоть пофиксили, мою инвестигируют https://developercommunity.visualstudio.com/content/problem/310976/vc-internal-compiler-error-1580.html

Yarique
16.08.2018
14:54:23
ну, твою хоть пофиксили, мою инвестигируют https://developercommunity.visualstudio.com/content/problem/310976/vc-internal-compiler-error-1580.html
Это был не мой репорт, я кинут тот репорт, который тоже выявил проблемы с шаблонами. Я в основном на gcc собираю код, на линуксе, поэтому даже поленился зарепортить о своём кейсе.

Если в новой версии не закроют - тогда зарепорчу.

Andrey
16.08.2018
15:46:07
Господа, загадка: чему равно foo<int>(1) если foo определена следующим образом template <typename T> constexpr int foo(int) { return 1; } template <typename T> constexpr int foo(T) { return 2; } template <typename T> constexpr int foo(decltype(T{})) { return 3; } Подсказка: gcc (trunk), clang (trunk) и MSVC Pre 2018 считают разное.

Igor
16.08.2018
15:47:44
емнип, должно быть 1, вариант без вывода типа вроде должен быть приоритетнее вариантов с выводом

Andrey
16.08.2018
15:49:23
емнип, должно быть 1, вариант без вывода типа вроде должен быть приоритетнее вариантов с выводом
Тут ни в одном из вариантов типы выводить не надо: мы явно указываем шаблонный аргумент f<int>(1). Но версия хорошая, clang считает так же.

Igor
16.08.2018
15:51:03
ну я просто помню что при void foo(int); и template<class T> void foo(T); предпочтение должно отдаваться нешаблонной перегрузке; хз как оно в данном случае себя поведёт

Andrey
16.08.2018
16:58:49
У нас язык свободный :), такая точка зрения тожет имеет право на существование, так считает MSVC.

Kartonagnick
16.08.2018
17:00:15
я за ошибку компиляции: неоднозначность перегрузки

Andrey
16.08.2018
17:23:07
Но что интересно, MSVC говорит, что 2 кандидата одинаково хороши -- 1-й и 3-й, а 2-й им уступает.

Google
Constantine
16.08.2018
17:56:30
Но что интересно, MSVC говорит, что 2 кандидата одинаково хороши -- 1-й и 3-й, а 2-й им уступает.
А decltype(1) это же int? Тогда 2 отлетает, но я не понял, как работает deduction в случае 3 (я идиот, его там нет)

Тут ни в одном из вариантов типы выводить не надо: мы явно указываем шаблонный аргумент f<int>(1). Но версия хорошая, clang считает так же.
Там есть правило, что считается более специализированным, и мое интуитивное понимание совпадает с вижаком

Alexandr
16.08.2018
18:29:17
Такой вопрос. Линуксы. Через fork, а потом execve, запускаем нужную нам прогу. Как потом у родителя получить потоки ввода/вывода (дескрипторы) у вызванной программы?

Alexandr
16.08.2018
18:32:53
@Artalus Andrey Есть вариант посмотреть как реализован std::vector Там для bool, как я слышал, другая реализация, нежели все остальное

Igor
16.08.2018
18:35:21
а что вектор? в векторе просто специализация общего template<class T, class Allocator> class vector; на конкретное template<class Allocator> class vector<bool>; а тут в (int) версии шаблон T всё равно остаётся

Igor
16.08.2018
18:37:08
и & / && квалификаторов не хватает, да?)

Constantine
16.08.2018
18:37:15
это везде не хватает)

а вот noexcept-ов каких-то там нет

по сравнению с основной

Alexandr
16.08.2018
18:38:47
pipe()
https://www.opennet.ru/man.shtml?topic=pipe&category=2&russian=2 Вот в примере по этому системному вызову показано как из под ребёнка общаться с родителем, но у меня то ребёнком будет заменяться другим процессом

Kathu
16.08.2018
20:08:01
можно ли как-нибудь проверить свою программу на работу в условиях очень малого доступного объема ОЗУ на linux x86_64? Объем RAM может быть килобайты (стек + куча). Ну и вообще, как-нибудь точно мониторить сколько ОЗУ требуется проге. Или лучше сразу куда-нибудь в эмулятор залезть?
сделай пул памяти и из него выделяй память на все внутренние структуры, размер зафиксируй и за него не вылезет, но придется пользоваться либо классами которые поддерживают аллокаторы, либо писать свои

Kathu
16.08.2018
20:09:15
придется изощряться, но так ты сможешь контролировать чтобы программа лишнего не потребляла

стек хз как

Google
Kathu
16.08.2018
20:10:26
напиши свой маллок для этого пула и через него память выделяй

почитай в интернете много примеров

Alexey
16.08.2018
20:10:39
пока самое вменяемое что позволяет посмотреть сколько оно жрет - это valgrind

Kathu
16.08.2018
20:10:55
чисто смотреть под линукс это valgrind

под винду вообще куча разных

Kathu
16.08.2018
20:18:48
а зачем детач? сделай пул потоков и в io_service контролируй их завершение

Alexandr
16.08.2018
20:19:15
@Ioann_V >но в потоке родителе содержать некий потокобезопасный контейнер Все потоки владеют памятью в равных условиях, не стоит обосабливать на объект родителя и объект ребенка Я понял что ты хочешь создать какой-то контейнер, который будет заполняться с разных потоков? Да, нужно использовать мьютексы в этом случае

Max
16.08.2018
20:19:25
Ещё можно запускать их через std::async, и на фючере спрашивать wait с нулевым таймаутом.

Kathu
16.08.2018
20:19:29
детач это ты их отправишь в асинхрон и только через содержимое потоков сможешь контролировать завершились они или нет

Max
16.08.2018
20:19:47
И детач совсем не нужен, да.

Kathu
16.08.2018
20:20:50
посоветуйте что почитать/посмотреть про архитектуру и проектирование своих распределенных баз данных?

там в самых первых главах есть прям на это пример с futures

Max
16.08.2018
20:22:54
auto future = std::async(std::launch::async, &func); ... if (future.wait_for( std::chrono::seconds(0) ) == future_status::ready) { // завершился. }

Kathu
16.08.2018
20:23:02
и вообще там грамотно расписано с примерами как многопоточный код организовывать, многого и в интернете нет так грамотно описанного, например про shared_mutex-ы

Max
16.08.2018
20:24:03
+. Шикарная книга.

А если основной поток больше ничем не занимается, только ждёт, то и просто через join.

и? Они и будут одновременно. Вопрос в том, чем должен заниматься поток, их создавший. Если просто ждать их окончания, то join.

Kathu
16.08.2018
20:29:06
они и будут работать одновременно (на самом деле как ОС решит) а в join ты синхронизируешь точку в которой они все должны завершиться

Max
16.08.2018
20:30:43
да.

Google
Ioann V
16.08.2018
20:32:39
Thx

Andrey
16.08.2018
21:10:04
Alexander
16.08.2018
21:10:21
Я не могу понять
скинь места из Стандарта

Andrey
16.08.2018
21:13:40
[temp.func.order] "Partial ordering of function templates"

Экспериментально, можно получить, такой порядок на фукнкциях (> значит более специализированная): clang: 1 > (2 = 3) msvc: (1 = 3) > 2 gcc: 3 > 1 > 2

Valeriy
16.08.2018
22:08:29
на чем делать разметку лутчше visual studio ,suble text or brackets?

Alexander
16.08.2018
22:08:53
Friedrich
17.08.2018
01:20:03
std::make_unique<BYTE[]>(size); хм, так ведь нельзя делать? Неправильный деструктор вызовется.

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