@ProCxx

Страница 2359 из 2477
Alexander
19.09.2018
12:32:57
чот они ускорились
пусть штампуют. главное чтобы изменения вкусные завозили

Igor
19.09.2018
12:36:19
Релизнулся LLVM 7.0.0 и сопутствующие вещи: http://releases.llvm.org/7.0.0/docs/ReleaseNotes.html http://releases.llvm.org/7.0.0/tools/clang/docs/ReleaseNotes.html http://releases.llvm.org/7.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html http://releases.llvm.org/7.0.0/tools/lld/docs/ReleaseNotes.html
> The Windows installer no longer includes a Visual Studio integration. Instead, a new LLVM Compiler Toolchain Visual Studio extension is available on the Visual Studio Marketplace. The new integration supports Visual Studio 2017. это чо, долой clang-cl чтоли?

Google
Egor
19.09.2018
12:38:10
неа

они свою интеграцию не осилили поддерживать

Anton
19.09.2018
12:38:45
в vs есть свой clang же

только там древний наверное

Konstantin
19.09.2018
12:39:33
его дропнули

Anton
19.09.2018
12:45:08
о как

/dev
19.09.2018
13:16:42
Alexander
19.09.2018
13:30:16
Главное, чтоб баги не привозили
конечно баги завозят, куда ж без них то

/dev
19.09.2018
13:57:13
Twilight
19.09.2018
13:58:18
без них намного лучше
Без них скучно :(

/dev
19.09.2018
14:06:45
Без них скучно :(
Конечно, можно почувствовать себя героем на работе, когда очередной баг компилятора находишь. Но когда нужен срочный хотфикс, два дня назад, то становится слишком нескучно

Alexander
19.09.2018
14:06:50
без них намного лучше
ну согласись - круто же дебажить код , не понимать, почему падает. А оказывается, что там какая-то оптимизация из набора O2 сломалась в твоём случае

Google
Alex Фэils?︙
19.09.2018
14:07:33
#ирония

Egor
19.09.2018
14:10:27
ллвм в этом смысле очень неплох, почти на каждое изменение, добавляют тесты

Denis
19.09.2018
14:33:43
A.D.
19.09.2018
14:40:15
Или даже gcc4.8 =(
или даже 4.4 )))

Александр
19.09.2018
14:40:42
Здравствуйте. Подскажите вызываю EnumWindowProc, она возвращает BOOL получаю неправильное преобразование типов BOOL в WNDENUMPROC. Гугл молчит.

/dev
19.09.2018
14:40:53
или даже 4.4 )))
Запахло пятой красношляпой

A.D.
19.09.2018
14:41:10
Alex Фэils?︙
19.09.2018
14:41:47
EnumWindowsProc callback function (Windows) msdn.microsoft.com The WNDENUMPROC type defines a pointer to this callback function. EnumWindowsProc is a placeholder for the application-defined function name.

т.е. тебе принципиально надо делать callback-функцию с таким прототипом: BOOL CALLBACK yourEnumWndProc(HWND hWnd, LPARAM lParam); (вместо yourEnumWndProc подставляй свое имя функции)

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

Александр
19.09.2018
14:45:38
Так и делаю, но не робит, тоже самое в 7ке, vs2015 работало, сейчас 10, 2017

Alex Фэils?︙
19.09.2018
14:46:14
скинь код на pastebin

Александр
19.09.2018
14:49:40
https://pastebin.com/T7mvcsnQ

Alex Фэils?︙
19.09.2018
14:56:59
Так и делаю, но не робит, тоже самое в 7ке, vs2015 работало, сейчас 10, 2017
потому что надо не long Делать, а LPARAM. в 64-битной винде long != LPARAM

Александр
19.09.2018
14:57:16
делал, но всё так же

сейчас ещё попробую

Nikita
19.09.2018
14:57:41
как же сложно писать на плюсах, наверное

Alex Фэils?︙
19.09.2018
14:57:45
и еще - ты не чистишь память после оператора new[]. У тебя на каждое окно в итоге утекает по 510 байт

Google
Nikita
19.09.2018
14:57:56
прям читаю ваш чатик и охуеваю

Alex Фэils?︙
19.09.2018
14:58:03
жизнь сложная вещь)

Александр
19.09.2018
14:58:47
Ошибка (активно) E0167 аргумент типа "BOOL (__stdcall WindowChecker::*)(HWND hWnd, LPARAM lParam)" несовместим с параметром типа "WNDENUMPROC" 0

Alex Фэils?︙
19.09.2018
14:59:04
потому что ты передаешь функцию-член класса

надо передавать либо свободную функцию, либо статический метод

Александр
19.09.2018
14:59:38
статику пробовал, не идет

а свободную это как ?

Anton
19.09.2018
14:59:48
ллвм в этом смысле очень неплох, почти на каждое изменение, добавляют тесты
я только в llvm компиляторе баги оптимизатора находил, 2 раза, никогда в gcc/msvc

Alex Фэils?︙
19.09.2018
14:59:57
а свободную это как ?
за пределами класса

Constantine
19.09.2018
15:42:03
прям читаю pro.cxx и охуеваю

Alexander
19.09.2018
15:45:57
/dev
19.09.2018
15:52:36
прям читаю pro.cxx и охуеваю
в холиварке есть призыв относиться к такому толлерантнее

?
брейнпозитив и всё такое

39170
19.09.2018
15:57:56
Ребят, вопрос на засыпку. Если я использую мьютексы (и потоки) не из стандартной библиотеки, предоставляет ли стандарт synchronize-with отношение?

Александр
19.09.2018
16:07:44
за пределами класса
Заработало. Спасибо.

Andrew
19.09.2018
16:08:04
Ну он не совсем bullshit. Ты спрашиваешь, будет ли при использовании своих потоков реализовываться гарантии на модели памяти?

Я так понимаю, что гарантии предоставляются примитивами, так что скорее да.

Google
Max
19.09.2018
16:42:04
Ребят, вопрос на засыпку. Если я использую мьютексы (и потоки) не из стандартной библиотеки, предоставляет ли стандарт synchronize-with отношение?
Стандарт ничего не гарантирует в отношении сторонних библиотек. В реальности -- практически наверняка. Зависит от реализации твоего мютекса. Если он под капотом дёргает системные вызовы для лока/анлока, то точно. Если разновидности спинлоков (читай, работает без переключения контекста), то от годности реализации.

Max
19.09.2018
16:45:17
какая разница, через что будет реализован mutex?
Там где-то должен быть выставлен барьер. Если его нет, то компилятор и проц вполне могут поменять местами какие-то вызовы

Anton
19.09.2018
16:45:50
барьер, да, надо

иначе будет бобо

Antony
19.09.2018
16:46:46
@AlexFails а закинь в мероприятия ещё и наш сабантуйчик по C++ https://events.yandex.ru/events/meetings/11-oct-2018/

Alex Фэils?︙
19.09.2018
16:46:56
О_О закину!

Antony
19.09.2018
16:47:12
Можно ещё и в чатик по Яве закинуть :) Там один доклад про нетормозящую Яву

Antony
19.09.2018
16:49:18
Не, вопрос не про реальный мир, а про абстрактную машину
В стандарте прописано что мьютекс ставит барьеры

Max
19.09.2018
16:49:44
Не, вопрос не про реальный мир, а про абстрактную машину
Ну, тогда если твой абстрактный мютекс ставит барьеры, то да :)

Anton
19.09.2018
16:49:53
В стандарте прописано что мьютекс ставит барьеры
если мьютекс (нестандартная реализация) не будет ставить барьеры, то оптимизатор может так код перемешать, что чёрти что считаться будет

Antony
19.09.2018
16:50:53
А нестандартный - да, может делать любую фигню. Ну как бы сам виноват :)

Igor
19.09.2018
16:51:34
@AlexFails а закинь в мероприятия ещё и наш сабантуйчик по C++ https://events.yandex.ru/events/meetings/11-oct-2018/
А я думал что таксисты теперь на павелецкой а не на льватолстого Звучит вкусно

Google
Anton
19.09.2018
16:51:43
Как ты представляешь себе эту реализацию?
ну вот спинлок с atomic переменной например - выше упоминали

А нестандартный - да, может делать любую фигню. Ну как бы сам виноват :)
на самом деле почти все используют примитивы из ОС, а там всё точно то же

стандартный mutex просто обёртка над ними

Max
19.09.2018
16:52:27
ну вот спинлок с atomic переменной например - выше упоминали
Atomic всегда ставит барьер, по определению

Anton
19.09.2018
16:52:58
Atomic всегда ставит барьер, по определению
ну это опять же из стандарта?

а если ты тупо int используешь для 32-х бит или long long для 64-х?

Antony
19.09.2018
16:53:49
Atomic всегда ставит барьер, по определению
Нет, барьеры указываются последними параметрами к операции. Можно делать атомарные операции без барьеров

Anton
19.09.2018
16:54:20
Не надо так
иногда может работать )

смотря что за алгоритм, что надо

Antony
19.09.2018
16:54:50
а если ты тупо int используешь для 32-х бит или long long для 64-х?
То оно не будет работать, так как их изменение не будет являться атомарной операцией

Antony
19.09.2018
16:55:06
да, и это супер правильно

Max
19.09.2018
16:55:54
да, и это супер правильно
Безусловно. Я имею ввиду, что нет варианта вообще без барьера.

Antony
19.09.2018
16:56:15
работать будет, переносимо не будет
готов поспорить, что будет работать не так, как вы задумываете

Anton
19.09.2018
16:57:05
просто пользоваться тем, что это атомарные переменные

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