Russian Qt Forum
Ноябрь 17, 2019, 11:44 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: [1] 2 3 ... 193
1  Разное / Говорилка / Re: Бойкот Huawei AppGallery : Сегодня в 03:49
номер счёта, БИК и прочее

Открою страшную тайну, БИК это чисто российское изобретение, зарубежные счета работают по-другому.
Есть SWIFT, есть иные системы - например в эуропе для перевода достаточно номера аккаунта.
Попробуйте завести счет в забугорном банке или там пейпал может какой у них работает.
2  Разное / Говорилка / Re: Бойкот Huawei AppGallery : Ноябрь 16, 2019, 17:17
https://www.youtube.com/watch?v=7eD7W6uD-8c
3  Qt / Qt-инструментарий / Re: [QBS] baremetal: Хочу поддержку IAR, KEIL, SDCC тулчейна : Ноябрь 14, 2019, 18:19
Я профильнул, тормозит спавн процессов на моей машине как то: вызов vswhere, вызов cl.exe (чтобы получить его версию). Можно немножко ускорить путем кеширования инфы при вызове clang-cl probe (так как мы уже делали примерно те же вызовы когда сетапили msvc), но большого выигрыша это не даст. Хотя процентов 10 тоже бонус=).
Еще тормозят регэкспы в gccProbe (ноги растут из buildCompilerNameFilters) - это еще процентов 10.
4  Qt / Qt-инструментарий / Re: [QBS] baremetal: Хочу поддержку IAR, KEIL, SDCC тулчейна : Ноябрь 13, 2019, 23:51
Ну 6 секунд тоже дофига, нет?=)
5  Qt / Qt-инструментарий / Re: [QBS] baremetal: Хочу поддержку IAR, KEIL, SDCC тулчейна : Ноябрь 13, 2019, 15:16
Я заметил, что qbs setup-toolchains --detect стал тормозить на венде (28 секунд). kuzulis, не замечал? Может это связано с изменениями с баре метал?
6  Программирование / С/C++ / Re: Ненулевые указатели : Ноябрь 12, 2019, 19:14
Ну в .get() проверка не нужна, так как operator= "реализован" через implicit ктор от T и уже там есть проверка, т.е. нельзя nullptr присвоить.
Я так понял, эта проверка там с давних времен и пока не убрана "как бы чего не случилось".
Так как не ясно что этот get() должен возвращать для вумных указателей - ну а вдруг там будет ссылка на вумный указатель и можно сделать .get().release()?
Так-то да, сейчас эта проверка просто оверхед безо всяких бонусов (так как вумные не поддерживаются до конца).
7  Программирование / С/C++ / Re: Ненулевые указатели : Ноябрь 12, 2019, 17:42
С перемещаемым юником всё хорошо) проблема с его мутабельностью - либо он мутабельный и перемещаемый, либо немутабельный и неперемещаемый.

На самом деле, с юником проблемы "нулевого" указателя обычно нет - он обычно создается через make_unique и если избегать явных вызовов .reset(), то всё будет хорошо.
8  Программирование / С/C++ / Re: Ненулевые указатели : Ноябрь 12, 2019, 14:05
Кого мы пытаемся ограничить этим функционалом, писателя функции? Улыбающийся

Кого мы пытаемся ограничить, запрещая писать gsl::not_null<int *> p = nullptr? Писателя функции?
9  Программирование / С/C++ / Re: Ненулевые указатели : Ноябрь 11, 2019, 22:07
Я, кстати, еще наброшу - юник_птр вообще говно, его нельзя сделать объявить константным.
Юзкейз - мочь форвардить его в функции но запретить явно вызывать .release().
"константный" юник_птр бы решил все проблемы=)
Не очень понятен юзкейс. Можете пример привести.


Код:
unique_ptr<int> p = foo();
p.release(); // ok
bar(move(p)); // ok

Код:
const unique_ptr<int> p = foo();
p.release(); // !ok, не скомпилится, хорошо
bar(move(p)); // тоже !ok, а вот это было бы неплохо скомпилить

То есть по-хорошему нужен какой-то immutable_unique_ptr который нельзя занулить, но можно мувнуть. Такого нет и сделать стандартными средствами нельзя => возникает нужда в not_null.
10  Программирование / С/C++ / Re: Ненулевые указатели : Ноябрь 11, 2019, 21:15

Там вообще много интересного, связанного с умными указателями.
Например:
not_null<shared_ptr> overhead


Ну это тоже следствие того что ctor принимает копию указателя а get() возвращает копию.

Но да, с вумными указателями это особо не нужно.
Кроме того, там лезут проблемы, например:
Код:
not_null<unique_ptr<int>> p(make_unique(42));
p.get().release(); // oops контракт нарушен

Конечно, повторный вызов get() выявит нарушение контракта, но хотелось бы запретить такой вызов "на корню", т.е. get() вообще в идеале не должен ничего проверять (контракт был нарушен где-то ДО get() и вот там это и надо проверять - в кторе ли или в операторе=)
Возможно, это можно сделать через частичную специализацию для разных типов - одна для тривиальных T*, вторая для вумных (т.е. get() возвращает всегда T* просто в случаев вумных делает еще один .get()). Короче всё оказалось не так тривиально как я думал=(
11  Программирование / С/C++ / Re: Ненулевые указатели : Ноябрь 11, 2019, 20:04
И правда, с юником оно не работает.

Я, кстати, еще наброшу - юник_птр вообще говно, его нельзя сделать объявить константным.
Юзкейз - мочь форвардить его в функции но запретить явно вызывать .release().
"константный" юник_птр бы решил все проблемы=)
12  Разное / Говорилка / Re: c vs c++ : Ноябрь 11, 2019, 18:16
А вы пользуетесь этим gsl::not_null? Какие ощущения? И как у него с поддержкой умных указателей (в частности unique_ptr)?

К сожалению, не пользуюсь=( Только недавно перешли на с++17 моими стараниями (был с++11), а gsl хочет с++14 минимум. В ближайших планах есть.
gsl:span юзал, вот это вещь, да.
С умными указателями вроде всё неплохо, почему нет?
13  Разное / Говорилка / Re: c vs c++ : Ноябрь 11, 2019, 17:20
Лучше чего то скоммуниздить (gsl::not_null)

gsl::not_null поддерживается основными статическими анализаторами (clang и мелкософтным). Удачи сделать свой велосипед=)
14  Разное / Говорилка / Re: c vs c++ : Ноябрь 10, 2019, 22:59
Я как-то пришел на собеседование студентом в контору где меня срезали на том что я не привык проверять аллокацию памяти. Эти чувачки писали if (ptr) после ptr = new QTreeWidgetItem. Nuff said.
15  Разное / Говорилка / Re: c vs c++ : Ноябрь 10, 2019, 17:22
Мужик, я нихрена не понял что ты мне сказал
Страниц: [1] 2 3 ... 193

Страница сгенерирована за 0.091 секунд. Запросов: 23.