@ProCxx

Страница 2072 из 2477
Alex Фэils?︙
21.05.2018
11:20:15
Andrey
21.05.2018
11:20:42
^ всё просто - move конструкторы и assinment работают как правило быстрее чем copy, поэтому если использовать move то мы в критической секции будем меньше времени находиться. И соответственно двум потокам "столкнуться" в одной критической секции будет сложнее
Про то и речь. Если у вас элемент std::vector, и допустим move занимает 10 ns, а copy в среднем на ваших данных 1 ms, то в случае copy имеете предел в 1000 выборок из очереди в секунду, а в случае move 100К выборок. PS Все тайминги, равно как складывание вектора в очередь придуманы исключительно для наглядности рассуждений.

Anatoly
21.05.2018
11:21:18
threads, suspends, and wakeups редакторы,гады, вставили лишнюю запятую после threads
ну, по идее, они правы, поскольку threads множественное число, поэтому никаких s после suspend, wakeup быть не должно: threads suspend или контекст всего предложения приведи

Andrey
21.05.2018
11:22:36
Ой. Не заметил, что ответ был от автора.

Google
Spoonson
21.05.2018
11:25:56
я думаю, тут suspends тут подразумевалось существительным во множественном числе судя по всему

Anatoly
21.05.2018
11:26:12
вот контекст
тогда там должно быть threads suspend and wakeup

Andrey
21.05.2018
11:26:41
Ну так автор, то что говорит? То же самое! )

Anatoly
21.05.2018
11:27:44
Ну так автор, то что говорит? То же самое! )
дык так помимо запятой и s не должно быть после suspend и wakeup, поскольку это глаголы относятся к множественному числу threads

редакторы, прочтя "threads suspends and wakeups" расценили это как перечисление и поставили запятые бездумно. поскольку здесь явный микс множественного числа thread и глаголов оформленных как будто они применяются к существительному в единственном числе suspends, wakeups

Alex Фэils?︙
21.05.2018
11:28:37
Andrey
21.05.2018
11:28:47
Что у бедного редактора, учитавшегося статьи о плюсах, глаз выпал. прямо на клавишу "запятая"

Alex Фэils?︙
21.05.2018
11:42:26
ты рантайм код хочешь? такого не бывает
почему не бывает: system("cl.exe yourminilib.cpp /OUT: 1.dll"); auto dll = LoadLibrary("1.dll"); auto proc = GetProcAddress(dll, "evalproc");

Ох уж эти боты на пайтоне
он не на питоне, лол

Рил? А можешь кинуть какие-то гайдики по ботам на плюсах?
да просто бери anyone, что может херачить HTTP-запросы, и херачь, как в core.telegram.org/bots

Google
Alex Фэils?︙
21.05.2018
11:52:16
Может, чар и 1 байт, точно не помню, а лонг 8 байт 100%.
не, long должен быть не меньше инта по размеру

Alex
21.05.2018
11:56:35
8 < 4 ??

Alex Фэils?︙
21.05.2018
11:56:48
8 >= 4

Alex
21.05.2018
11:56:58
4 на х86 и 8 на х86-64

Alex Фэils?︙
21.05.2018
11:57:01
"не меньше" - это "больше или равно"

Alex
21.05.2018
11:57:03
Уже обсосали

Pika
21.05.2018
11:58:53
github.com/FailsBot
Как собираться с NDK? Просто использовать их компайлер или что-то? Рантайм?

Alex Фэils?︙
21.05.2018
11:59:00
алекс какойто queue

Как собираться с NDK? Просто использовать их компайлер или что-то? Рантайм?
я в термухе собираю обычным шлангом, который идет из NDK, да

Alex Фэils?︙
21.05.2018
12:01:01
можно ли catch перехватить сегм фолт при delete??
зависит от реализации исключений на платформе

Pika
21.05.2018
12:01:58
я в термухе собираю обычным шлангом, который идет из NDK, да
Как упаковать, чтобы поставить на устройстве? Кинь годных гайдов, если есть, позязя

Constantine
21.05.2018
12:05:57
покажи код
какой тебе код?)

Google
Constantine
21.05.2018
12:06:32
а, там просто std::unique_ptr<Interface> create_method(std::string name) генерируется

Alex Фэils?︙
21.05.2018
12:06:33
Constantine
21.05.2018
12:07:33
фишка в том, что список потомков собирается по xml-модулям а не по cpp-TU

anti-cpp-name-lookup модель, name lookup производится во всей единице трансляции, а не порядкозависимо

Nikita
21.05.2018
12:27:21
при использовании вот такого костыля [](...) {} ((lambda(strings), 0)...); (strings - это template pack) есть ли простой способ гарантировать порядок вычисления параметров?

(если я ничего не путаю, то по стандарту он не определён, а мне хочется строго слева-направо, на текущем компуляторе получается справа-налево)

Constantine
21.05.2018
12:30:38
о_О

что ты хочешь вообще сделать?

Constantine
21.05.2018
12:31:07
справа налево все считают

Nikita
21.05.2018
12:31:08
вызвать лямбду от каждой строки из template pack'а

Constantine
21.05.2018
12:31:11
так в стек удобнее класть

в порядке?

Nikita
21.05.2018
12:31:44
ну да

Constantine
21.05.2018
12:32:14
а нельзя там через || мерджить в цпп17?

Nikita
21.05.2018
12:32:32
мне на работе незя цпп 17

Constantine
21.05.2018
12:33:14
тогда, вроде, никак

только хвостовую рекурсию делать

Google
Spoonson
21.05.2018
12:33:38
а в initializer_list запихнуть не выйдет?

Constantine
21.05.2018
12:33:50
а у него порядок гарантируется вычисления?

Spoonson
21.05.2018
12:34:09
вроде да, но надо проверить

Constantine
21.05.2018
12:34:16
я голосую, что нет

потому что зачем?

объект типа std::initializer_list<T> это легкий объект прокси-сервер

Spoonson
21.05.2018
12:36:01
https://stackoverflow.com/questions/20266153/stdinitializer-list-and-order-of-evaluation-of-the-elements

Constantine
21.05.2018
12:36:03
Every initializer clause is sequenced before any initializer clause that follows it in the braced-init-list. This is in contrast with the arguments of a function call expression, which are unsequenced.

Admin
ERROR: S client not available

Constantine
21.05.2018
12:36:22
https://stackoverflow.com/questions/20266153/stdinitializer-list-and-order-of-evaluation-of-the-elements
пожалуйста, можно без ссылок на стековерфлоу?

Spoonson
21.05.2018
12:36:44
можно, но почему?

Constantine
21.05.2018
12:37:04
потому что я вот прямо сейчас найду пару ответов, которые просто ошибочны

Nikita вот и ответ - действительно, нужно через initializer list проходить

Constantine
21.05.2018
12:38:27
короче написано, что в initializer list порядок гарантируется

Spoonson
21.05.2018
12:40:02
потому что я вот прямо сейчас найду пару ответов, которые просто ошибочны
так можно про что угодно сказать. Конечно, надо проверять что написано - но конкретно здесь как по мне все достаточно четко.

Constantine
21.05.2018
12:40:28
так можно про что угодно сказать. Конечно, надо проверять что написано - но конкретно здесь как по мне все достаточно четко.
конкретно здесь все четко, потому что цитата из стандарта - достаточно её скопипастить

stackoverflow сам по себе источник чуть лучше википедии

Spoonson
21.05.2018
12:41:06
я понял ваше мнение, спасибо за объяснение

Constantine
21.05.2018
12:41:53
проблема в том, что отвечающие (пишущие википедию) зачастую не разбираются в теме

Google
Constantine
21.05.2018
12:42:03
тот же cppreference за таким не замечен

Nikita
21.05.2018
12:48:16
короче написано, что в initializer list порядок гарантируется
std::initializer_list<int>{(lambda(strings), 0)...}; заработало

правда тут вопрос, а имеет ли право компилятор выкинуть нахрен создание этого списка

Spoonson
21.05.2018
12:49:27
он его и выкинет, но сайд эффекты (вызов лямбды) оставит

Nikita
21.05.2018
12:49:59
а

отлично

спасибо

Constantine
21.05.2018
12:50:53
правда тут вопрос, а имеет ли право компилятор выкинуть нахрен создание этого списка
право "выкидывать" компилятора ограничивается как раз всякими вопросами типа не-UB

Andrey
21.05.2018
13:29:24
apt в термуксе
У меня Gentoo, а не Debian

Alex Фэils?︙
21.05.2018
14:07:54
а у меня андроид :P

а почему не хочешь кросс-компилировать?

olologin
21.05.2018
14:12:09
Господа, зачем линкер под линуксом оставляет в so файлах имена скрытых символов?

В чём была идея?

типа в аутпуте nm'а символы с малой буковой 't'

https://stackoverflow.com/questions/22244428/hiding-symbol-names-in-library

Antony
21.05.2018
14:20:29
Господа, зачем линкер под линуксом оставляет в so файлах имена скрытых символов?
Одна из причин - RTTI. Например если в двух библиотеках, активно обменивающихся указателями на базовые классы, объявлены одинаковые классы A, то вы захотите, чтобы линкер схлопнул два объявления в одно. Тогда typeid(a1) == typeid(a2) будет достаточно сравнить указатели на type_info и не сравнивать текстовое имя типа. P.S.: только вот вышеописанное схлопывание не всегда работает

Oleksandr
21.05.2018
14:20:33
char f() {std::cout « "Hello\n"; return 0; } void main() { if (!(!(0 || 1) && !(1 && 0)) && (16 &4) && (2 & 10) && f () && ~false) { std::cout « "World!\n"; }

Каким будет результат выполнения такой программы и почему ???

olologin
21.05.2018
14:21:07
Просто вопрос в том что они какбы скрытые, линкер ими не может пользоваться, не статический не динамический, но nm их показывает, а вот зачем они в бинарнике тогда хранятся - не ясно

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