
Никита
13.03.2017
20:01:22
погуглил — обычно если константу передавать и изменять, то такое происходит, но у меня тут ничего константного нет

Roman
13.03.2017
20:02:22

Surreal
13.03.2017
20:02:40
Не, я вспомнил. По ссылке на volatile можно передать только volatile объект.

Никита
13.03.2017
20:03:34
А для всяких mips?
да вполне, думаю) я думал то был вопрос про целесообразность написания этого кода на плюсах

Google

Surreal
13.03.2017
20:03:36
Что очевидно на самом деле должно быть.

Никита
13.03.2017
20:04:08

Surreal
13.03.2017
20:05:28

Никита
13.03.2017
20:05:51

Surreal
13.03.2017
20:09:59
Можно попробовать в конце делать присваивание какое-нибудь. Лучше всего для последнего элемента, к которому у вас доступ в асме идет последним.

Nikolay
13.03.2017
20:12:11
товарищи, а кто работал с protobuf/msgpack?
у нас тут срач с коллегами, они мне задвигают, что второй "по определению" лучше и что я должен это принять на веру, но почему именно лучше - не говорят

Tema
13.03.2017
20:13:29
а.. я тока про первый слышал

Никита
13.03.2017
20:13:53

Tema
13.03.2017
20:13:55
хорошый

Vladislav
13.03.2017
20:16:15

Nikolay
13.03.2017
20:17:06

Google

Surreal
13.03.2017
20:18:51
спасибо, вот так работает:
descriptor.pixels_.data_[descriptor.size_-1] = 0;
Можно еще поэкспериментировать с указателями. Должно работать при передаче shared_ptr, но можно завернуть в unique_ptr и возвращать из функции unique_ptr мб быстрее получится, но надо бенчить. Дико, конечно, но должно помочь открыть глаза оптимизатору. С присваением самый быстрый вариант, но стабильным его назвать сложно. И поставьте на этой строке коммент, что оно нужно и не надо его трогать.

Vladislav
13.03.2017
20:19:20
Если смотреть в среднем по больнице чисто для сериализации, то вот https://github.com/thekvs/cpp-serializers

Никита
13.03.2017
20:20:14

Nikolay
13.03.2017
20:20:17
при этом протобуф есть в системе сборки, но он там старый
а на мой резонный вопрос "почему бы его не обновить" единственным ответом было "он говно, юзай msgpack, потому что мы так решили"

Surreal
13.03.2017
20:21:51

Vladislav
13.03.2017
20:23:05

Никита
13.03.2017
20:23:35
не, вот так не прокатило (void)descriptor.pixels_.data_

Surreal
13.03.2017
20:24:54

Никита
13.03.2017
20:25:38
хм, интересно
do {
(void)descriptor.pixels_.data_;
} while (false);
если после асма так написать, тоже сегфолт

Nikolay
13.03.2017
20:28:09
мне надо бинарные структуры довольно четкого формата пересылать
сериализатор-десериализатор для них уже давно написан, почему бы не заюзать строго типизированный protobuf - я не очень понимаю

Tema
13.03.2017
20:29:07

Vladislav
13.03.2017
20:29:44

Google

Tema
13.03.2017
20:29:47
+ я не знаю как в новых версиях , в нашей он поганит имена, приводит всё к нижнему регистру

Nikolay
13.03.2017
20:30:02

Vladislav
13.03.2017
20:30:05
такие вещи нельзя раз и навсегда решать, библиотеки-то эволюционируют

Nikolay
13.03.2017
20:30:07
покатит?

Vladislav
13.03.2017
20:30:14
разве что чтобы зоопарк не плодить

Nikolay
13.03.2017
20:30:53
а данные большие?
не очень, в мегабайтах не скажу, но вроде около нескольких терабайт в день

Surreal
13.03.2017
20:31:05

Никита
13.03.2017
20:33:34

Surreal
13.03.2017
20:34:04

Никита
13.03.2017
20:34:22
сделал вот так сейчас, как там вроде:
:
: "g"(descriptor.pixels_.data_.data())
: "memory"

Vladislav
13.03.2017
20:35:38

Surreal
13.03.2017
20:36:14
а, понял, сейчас попробую
void UseCharPointer(char const volatile*) {}
template <class Tp>
inline void DoNotOptimize(Tp const& value) {
UseCharPointer(&reinterpret_cast<char const volatile&>(value));
}

Никита
13.03.2017
20:39:09
блин, оно заработало!!!
:
: "r"(descriptor.pixels_.data_.data())
: "memory"

Vladislav
13.03.2017
20:39:57

Никита
13.03.2017
20:40:06
надо было просто мемори в зависимостях добавить к первоначальному варианту

Google

Surreal
13.03.2017
20:40:37
спасибо большое!
Да это не мне, это гуглу спасибо. Их же код. Если конкретно, то, вроде, Чендлер Каррус(т) этим занимался.

Никита
13.03.2017
20:41:04

Andrei
13.03.2017
20:48:48
До чего же меня бесят гнутые разработчики.
И вообще опенсоурсники. Почему нельзя сделать так, чтобы их либа собиралась на винде без убийства на это целого рабочего дня?

Vladislav
13.03.2017
20:50:02

Andrei
13.03.2017
20:50:33
Самое ублюдочное, это .h файлы, которые собирает только configure
За такое хочется убивать.
Как я должен без вашего богомерзкого линукс-окружения это делать на моей убогой винде без баша.

Vladislav
13.03.2017
20:51:28
это же опенсорс, возьми и почини

Admin
ERROR: S client not available

Vladislav
13.03.2017
20:51:42
раз тебе нужна поддержка винды

Tema
13.03.2017
20:51:43

Andrei
13.03.2017
20:51:50
Я насчитал 7 либ на починку уже. Что, все починить?

Tema
13.03.2017
20:52:01

Vladislav
13.03.2017
20:52:17

Andrei
13.03.2017
20:52:21
Во, это просто мегаад. У меня тут как раз такая либа. Которая собирается питоном.

Tema
13.03.2017
20:52:46

Vladislav
13.03.2017
20:52:51

Andrei
13.03.2017
20:53:11
Да я уже именем такой-то матери их собрал. Но всё равно, почему изначлаьно не сделать хорошо?

Google

Andrei
13.03.2017
20:53:54
Я бы сейчас делал все либы cmake-ом и не парился бы. Работает везде без плясок с бубном.
Но нет, у кого-то configure у кого-то Jam у кого-то autogen у кого-то просто Makefile а кто-то вообще питоном собирает
беситажтрисёт

Stanislav
13.03.2017
20:55:11

Vladislav
13.03.2017
20:55:22

Stanislav
13.03.2017
20:55:28
и мейкфайл даже никак не сгенерить по другому
у некоторых упоротых есть такие же упоротые cmd скрипты
libxml2 например

Andrei
13.03.2017
20:56:07
Проклял всё на свете.

Stanislav
13.03.2017
20:57:24

Andrei
13.03.2017
20:57:50
Я нашел пребилт бинари и скрестил пальцы просто.
надеюсь оно слинкуется

Stanislav
13.03.2017
20:58:16

Andrei
13.03.2017
20:58:25
Я на 2017 :(

Stanislav
13.03.2017
20:58:26
большая вероятность)
а хотя оно же си

Vladislav
13.03.2017
20:58:34

Stanislav
13.03.2017
20:58:36
должно тогда
и тьма других поверх смейка

Vladislav
13.03.2017
20:59:02
https://chocolatey.org/