
Berkus
23.01.2018
16:31:50

Stanislav
23.01.2018
16:33:53
ты же в курсе что delete nullptr это вполне ок и описано в стандарте? проверка не нужна

Vsevolod
23.01.2018
16:35:02
это надо взять какой-нибудь оптерон многоголовый, чтобы она была очень медленная

Google

Alexander
23.01.2018
16:35:49
и так лучше не делать никогда

Stanislav
23.01.2018
16:36:04

Alexander
23.01.2018
16:36:14

Berkus
23.01.2018
16:38:00

Alexander
23.01.2018
16:38:26

Stanislav
23.01.2018
16:38:27

Berkus
23.01.2018
16:38:48
вот это
там тоже проверка на нулл не себя, т.к. по стандарту this не может быть null
это только в уебанском msvc бывает что this == nullptr

Stanislav
23.01.2018
16:39:40
да я ваще не this, я походу пропустил всю дискуссию

Google

Berkus
23.01.2018
16:40:07
в MFC (лол)

Pavel
23.01.2018
16:40:15

Berkus
23.01.2018
16:40:21
if (this != nullptr) { ... бла бла

Pavel
23.01.2018
16:40:22
не только кстати в MFC

Alexander
23.01.2018
16:40:27
в MFC (лол)
так-так-так, MFC это библиотека промышленного уровня, попрошу

Berkus
23.01.2018
16:40:45
или промышенные...

Alex Фэils?︙
23.01.2018
16:45:40
В Питере
надо б заметку в @procxxnews зафигарить
SetWindowLongPtr

Anatoly
23.01.2018
16:48:21
SetWindowLongPtr
так и хранится, я не хотел деталей, а хотел описать, что не объект С++ управляет временем жизни ресурса, а ресурс (окно) управляет временем жизни объекта С++. и что в этом случае, чтобы осуществить удаление объекта С++ и используется delete this при получении оповещения от Windows Manager-a об уничтожении окна

Alex Фэils?︙
23.01.2018
16:50:07
обычно в win api-приложухах идет так:
1. регистрация класса окна;
2. создание окна;
3. цикл сообщений;
4. чистка дерьма.

Berkus
23.01.2018
16:54:53
где тема заз
мне нужен стикер с ассенизаторской машиной и надписью delete this; на ней

Anatoly
23.01.2018
16:55:55

Alex Фэils?︙
23.01.2018
16:56:28
а, если mfc, то там тяжко, да. Кстати. Тут WTL 10 зарелизился недавно!

Anatoly
23.01.2018
16:57:34

Alex Фэils?︙
23.01.2018
16:58:08

Google

Alex Фэils?︙
23.01.2018
17:05:48

Constantine
23.01.2018
17:49:06
и без нее реально заебешься кодить

Alex Фэils?︙
23.01.2018
17:50:33

Constantine
23.01.2018
17:51:48

Berkus
23.01.2018
17:51:52
вот и всё

Constantine
23.01.2018
17:52:48
потому что этот внутренний this == nullptr выносить наверх с расстрелами ноги
в conformant

Constantine
23.01.2018
17:54:00
он там используется для запроса wrapped handle из wrapper-а

Berkus
23.01.2018
17:54:32

Constantine
23.01.2018
17:55:36
мне на самом деле интересно, в 2к4 как там были дела с не-MFC объектными обертками над виндой

Alex Фэils?︙
23.01.2018
17:55:58
ATL вроде более-менее

Constantine
23.01.2018
17:56:07
там полный ужас
я бы за паттерн class some : template<some> вообще убивал бы

Berkus
23.01.2018
17:56:50

Alex Фэils?︙
23.01.2018
17:57:08

Google

Constantine
23.01.2018
17:57:09

Berkus
23.01.2018
17:57:31
ты знаешь что делает template<some>?

Constantine
23.01.2018
17:57:55

Berkus
23.01.2018
17:58:20

Constantine
23.01.2018
17:58:56

Admin
ERROR: S client not available

Berkus
23.01.2018
17:59:32

Constantine
23.01.2018
18:00:01
окай, скажи мне, как мне объявить абстрактное дерево с узлами под shared_ptr

Berkus
23.01.2018
18:00:44

/dev
23.01.2018
18:03:19

Constantine
23.01.2018
18:07:18
как только возникает малейшая естественная иерархия, enable_shared_from_this летит на помойку
и да, нельзя определять внешний tree_node с потомками, пушо в этом случае узел дерева не видит своих потомков

Ioann V
23.01.2018
18:18:02
Ребят, у меня к вам вопрос
Как такое возможно, что я запускаю тест - он рабоает одно время, запускаю его снова - другое, большее ?
и так, постоянно время скачет ...

Constantine
23.01.2018
18:19:06
у системы буфер записи кончился, а ты пишешь на HDD 1ГБ инфы

fox.cpp
23.01.2018
18:19:06
А что тест делает?

Ioann V
23.01.2018
18:19:30
Тест, вычисления делает

Google

Ioann V
23.01.2018
18:19:50
В моем случае, примитивном - банальное умножение матриц

Anatoly
23.01.2018
18:20:32

Ioann V
23.01.2018
18:20:51
И я никак не могу, замерить что и сколько у меня работает. Совершенно не могу. Так как работает оно по разному.

Berkus
23.01.2018
18:21:58

Ioann V
23.01.2018
18:22:09

Berkus
23.01.2018
18:22:34
если просто три цикла то cache скорее всего, prefetch используешь?
в single-user mode тестируешь?

Аттрибутивно-ассоциативный ряд
23.01.2018
18:23:10
вопрос по cmake. перед проектом задаю set(CMAKE_CXX_STANDARD 17) и set(CMAKE_CXX_STANDARD_REQUIRED ON). Если собирать с компилятором по умолчанию (xcode toolchain on macos) то все хорошо и компилятору передается флаг -std=gnu++1z. но если указать другой компилятор через опции cmake -DCMAKE_C_COMPILER и -DCMAKE_CXX_COMPILER то флаг не передается и ничего не комплируется. Как указать cmake чтобы он вызывал мой компилятор с нужным флагом?

Ioann V
23.01.2018
18:23:23
если просто три цикла то cache скорее всего, prefetch используешь?
for (int i_3 = 0; i_3 < nColumnA; i_3 += BLOCK_STRIDE_ROW)
{
for (int i_1 = 0; i_1 < nRowA; i_1 += BLOCK_STRIDE_COL)
{
for (int i_2 = 0; i_2 < nColumnB; ++i_2)
{
C(i_1, i_3) += A(i_2, i_3) * B(i_1, i_2);
C(i_1 + 1, i_3) += A(i_2, i_3) * B(i_1 + 1, i_2);
C(i_1 + 2, i_3) += A(i_2, i_3) * B(i_1 + 2, i_2);
C(i_1 + 3, i_3) += A(i_2, i_3) * B(i_1 + 3, i_2);
}
}
}

fox.cpp
23.01.2018
18:23:48

Ioann V
23.01.2018
18:23:52
То есть, код такой - самый что ни на есть примитивный. Размеры матриц - степени двойки, т.е выходы за границы нету

fox.cpp
23.01.2018
18:24:19

Berkus
23.01.2018
18:24:21

Аттрибутивно-ассоциативный ряд
23.01.2018
18:24:24

Ioann V
23.01.2018
18:24:37
Видимо, скорее всего да, кеш. И префетч, видимо надо делать руками. Просто проблема в том, что там где он делается, а это уже asm код, тоже самое по прыгучести.

Berkus
23.01.2018
18:24:43
clang из brew
а где ты эти переменные ставишь, до project() или после?

Аттрибутивно-ассоциативный ряд
23.01.2018
18:24:49
до
а компилятор через командную строку