
Sergey
02.08.2018
05:26:44

Matwey
02.08.2018
05:33:22
Я тут
Можно в ЛС задам вопрос? Тут все-равно нет других фортрановедов


Sergey
02.08.2018
05:36:22
мы очень долго сопртивлялись, но в итоге приняли что лучше неидеальный, но автоматический, чем идеальный, но руками
По той же самой причине перешли на clang-format больше года назад. Пока не полностью, т.к. кодовая база огромная и часть её изменяется прямо сейчас.
Для перехода навелосипедили свой скрипт, похожий на run_clang_format
- для ускорения запускает несколько экземпляров clang-format.exe одновременно (без полноценного пула воркеров, просто делит список файлов на пакеты по N элементов и один пакет обрабатывает параллельно)
- использует три простых конфига inlude_dirs, exclude_dirs и exclude_files для составления списка файлов для форматирования (т.к. кодовая база не полностью автоформатируется)
- исключает stdafx.h / stdafx.cpp
в планах - в течении хотя бы года перевести на автоформатирование все проекты и тогда уже включить форматирование при сохранении файла в IDE
В первое время при переходе было ворчание, что там стиль портится, там не так, как хочется и т.п. Т.к. я был инициатором перехода, я отвечал, что автоматически - лучше, чем руками, т.к. уже тогда clang-format исправлял больше, чем портил; кроме того, порча возникала как раз при неправильном форматировании - могли 10 строк свернуться в одну, т.к. ограничений на длину строки в нашем .clang-format нет

Google

Ilia
02.08.2018
05:36:53

Denis
02.08.2018
05:39:48
Я только один раз в жизни работал там, где это реально надо.
мы года полтора назад здорово отхватили на этом на 10летнем проекте, когда открыли вторую фабрику на весткосте. Первая была на исткосте, а авторизация была заточена под время и вперед можно было, а назад нет, поэтому из рф и исткоста все работало, а из весткоста - перестало. Было весело, с тех пор только utc или полностью заданные таймзоны

Ilya
02.08.2018
08:27:44
Ребят, можете пояснить код? Я с С++ не знаком, но нужно понять что за тип данных возвращается. Конкретно ec_compressed
ec_compressed getPublicKey()
{
std::string mnemonic = "portion shop border uniform loan grab dismiss boss wild magnet strong supreme era swing else keep voyage forest";
data_chunk seed = to_chunk(decode_mnemonic(split(mnemonic)));
hd_private privateKey = hd_private(seed, hd_private::testnet);
ec_compressed compressedPublicKey = privateKey.to_public().point();
return compressedPublicKey;
}

Spoonson
02.08.2018
08:28:36

Matwey
02.08.2018
08:30:39

yuri
02.08.2018
08:30:43
elliptic curve, видимо.

Ilya
02.08.2018
08:30:49
это как-бы понятно, вдруг у c++ есть какие-либо свои особенности с выводом типа
нашел. typedef byte_array<ec_compressed_size> ec_compressed;

Ilia
02.08.2018
08:41:40

Ilya
02.08.2018
08:42:35

babysitter
02.08.2018
08:43:10

Google

Ilia
02.08.2018
08:43:53

Михаил
02.08.2018
09:11:29
Доброго времени суток! Такой вопрос: правда, что в C++17 так можно?
// pre C++17
ssize_t idx = names.find("3a");
if (idx != -1) {
// ...
}
// C++17
if (ssize_t idx = names.find("3a"); idx != -1) {
// ...
}

Oleg
02.08.2018
09:14:18

Ilya
02.08.2018
09:20:34
Ещё такой вопрос
static BC_CONSTEXPR size_t ec_secret_size = 32
BC_CONSTEXPR - что за спецификатор? Как в C++ эта конструкция называется?

Anatoly
02.08.2018
09:21:15

Alex
02.08.2018
09:22:03
https://github.com/libbitcoin/libbitcoin/search?p=2&q=BC_CONSTEXPR&unscoped_q=BC_CONSTEXPR - вторая страница, первый пезультат

Ilya
02.08.2018
09:22:57

Alex
02.08.2018
09:24:50
нет, макрос, я скинул где это посмотреть

Zhanat
02.08.2018
09:27:03
Добрый день. Рандомно сервер становится недоступным с бесконечным "Failed to accept connection\n". Подскажите пожалуйста как сбросить соединение или сделать чтобы сервер в случае этой ошибки работал дальше нормально?
/* Get to work */
while (1) {
/* Hold on till we can an incoming connection */
sin_len = sizeof(sin);
if ((net_fd = accept(listen_fd,
(struct sockaddr *) &sin,
&sin_len)) < 0) {
fprintf(stderr, "Failed to accept connection\n");
//Ошибка тут
continue;
}
...
}

Михаил
02.08.2018
09:28:32

Ilya
02.08.2018
09:30:40

Combot
02.08.2018
09:30:40
Ilya Druzhinin (0) увеличил репутацию Alex Matveev (1)

Max
02.08.2018
09:33:37

Zhanat
02.08.2018
09:36:02

Max
02.08.2018
09:36:30

Zhanat
02.08.2018
09:37:07

Max
02.08.2018
09:37:34

Zhanat
02.08.2018
09:39:26
посмотреть что в errno
Когда узнаю как сбросить соединение? Сервер вообще не отвечает в консоли сверху до низу эта ошибка

Google

Max
02.08.2018
09:42:29

Zhanat
02.08.2018
09:43:08

Pavel
02.08.2018
10:04:16
а есть в stl стандартный способ свапнуть элемент вектора с последним и уменьшить размер вектора на один элемнт (эдакий фаст-делит без сдвига элементов)? чтобы не руками это делать каждый раз

Ilia
02.08.2018
10:09:26

Max
02.08.2018
10:09:50

Pavel
02.08.2018
10:11:12
не с начала, из середины

Max
02.08.2018
10:11:50

Ilia
02.08.2018
10:12:22
и — в @supapro
Нененене, это не относится к языку С/С++ вообще.
Не надо в СУПУ.

ed
02.08.2018
10:12:25

Ilia
02.08.2018
10:13:18

Pavel
02.08.2018
10:13:19
ну вектор все таки больше годится под задачу, удалять из него не часто, обходить часто, порядок не важен

Fedor
02.08.2018
10:17:48
std::iter_swap не подойдёт?

Max
02.08.2018
10:20:33

Pavel
02.08.2018
10:23:22
std::iter_swap не подойдёт?
почитаю, но по идее свап сам быстрее не сделать, тут вопрос немного в другом
пока такая байда получилось, которую можно в функцию спрятать
if (spawnPoints.size() > 1) {
std::swap(spawnPoints[i], spawnPoints[spawnPoints.size() - 1]);
}
spawnPoints.pop_back();

Max
02.08.2018
10:27:44

Pavel
02.08.2018
10:28:04

Google

Max
02.08.2018
10:28:16

Pavel
02.08.2018
10:29:30

Sergey
02.08.2018
10:50:21
народ, а счетчик ссылок в shared_ptr атомарный?
то есть, operator= атомарно увеличит счетчик ссылок или нет?

Ilia
02.08.2018
10:50:58

Sergey
02.08.2018
10:51:19
понял, спасибо)

Spoonson
02.08.2018
10:54:02

Ilia
02.08.2018
10:55:07
Ну, оно может и атомарно, но что он под этим хотел узнать, вот в чём вопрос.
Обычно хотят понять, надо ли мьютексом защищать shared_ptr. Ответ -- надо.
А если на вопрос "он атомарный" ответить "Да, атомарный", обычно делают вывод, что мьютексом его защищать не надо

Sergey
02.08.2018
10:57:25
ну я в принципе понял, спасибо за ответы)


Ilia
02.08.2018
11:05:47
Пеницилином?
Про Юникод.
http://local.joelonsoftware.com/wiki/%D0%90%D0%B1%D1%81%D0%BE%D0%BB%D1%8E%D1%82%D0%BD%D1%8B%D0%B9_%D0%9C%D0%B8%D0%BD%D0%B8%D0%BC%D1%83%D0%BC,_%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B9_%D0%9A%D0%B0%D0%B6%D0%B4%D1%8B%D0%B9_%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA_%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%9E%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F_%D0%9E%D0%B1%D1%8F%D0%B7%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE_%D0%94%D0%BE%D0%BB%D0%B6%D0%B5%D0%BD_%D0%97%D0%BD%D0%B0%D1%82%D1%8C_%D0%BE_Unicode_%D0%B8_%D0%9D%D0%B0%D0%B1%D0%BE%D1%80%D0%B0%D1%85_%D0%A1%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D0%BE%D0%B2
https://habr.com/sandbox/47663/
http://www.cyberforum.ru/blogs/33029/blog5139.html
Всё это по идее одна статья, я просто не знаю, где перевод лучше. и лучше бы её в оригинале читать.

Александр
02.08.2018
11:09:52

yuri
02.08.2018
11:16:53

Ilia
02.08.2018
11:20:36

yuri
02.08.2018
11:22:05
Я кстати написал свою реализацию tolower() на основе CaseFolding.txt из юникода.

Alexander
02.08.2018
11:35:34
тут в чате кто-то спрашивал, где почитать про оптимизации - вот что нашёл. мб полезно будет: http://llvm.org/docs/Passes.html

Nikita
02.08.2018
11:57:10
Ребят, хочу подтянуть библиотеку в проект. Она поставляется в виде .h и .so
В хедере весь функционал находится в namespace foo, а мне нужно чтоб он был в namespace bar, поэтому я дописал в конце namespace bar = foo;
В коде, использующий эту библиотеку, обращается к ней через bar
Ошибки линковку здесь могут быть?
Просто сейчас линковщик пишет мол я выкидываю из рассмотрения этот so который ты мне дал пушто он несовместим
Ну а потом конечно же пишет мол не могу найти библиотеку с которой ты хочешь слинковать

Google

Sergey
02.08.2018
12:10:23
модифицировать заголовок - так себе, но это не повлияет: bar при таком объявлении будет лишь синонимом foo, к которому привязаны символы с точки зрения линковщика
ошибка вызвана чем-то другим, возможно, SO собран под другую архитектуру, стоит сравнить флаги ELF для своего бинарника без библиотеки и для библиотеки

Egor
02.08.2018
12:19:56

Nikita
02.08.2018
12:21:13


Spoonson
02.08.2018
12:26:12
всегда можно сделать свой прокси-хеадер и уже там сделать переименование неймспейса, это будет как-то более правильно, чем менять библиотечный заголовочник

Nikita
02.08.2018
12:27:12
Кажется понял в чес проблема, у этой либы Android API SDK Level = 25, тогда как на проекте только 21

Ilia
02.08.2018
12:31:24

Nikita
02.08.2018
12:49:24
Sfinae в c++03 есть?)

Sergey
02.08.2018
12:52:16
В стандарте есть, в некоторых компиляторах нет

Nikita
02.08.2018
12:52:29

Max
02.08.2018
12:56:03