
dmtrge
02.07.2017
10:38:42

Eugene
02.07.2017
10:41:11
Я как-то дженту ставил и компилил всё на o3, побочных эффектов вроде не видел :D

Eugene
02.07.2017
10:42:21
юзай cling
Это костыль. C++ слишком многословный для интерактмвности

Berkus
02.07.2017
10:49:26

Google

Berkus
02.07.2017
10:49:39

Vlad
02.07.2017
10:50:52

Berkus
02.07.2017
10:51:37

Vlad
02.07.2017
10:51:51
http://clang.llvm.org/docs/CommandGuide/clang.html

Berkus
02.07.2017
10:53:32

Vlad
02.07.2017
10:53:50

Berkus
02.07.2017
10:54:08
ну я давно не пользовался этой опцией

Vlad
02.07.2017
10:54:32
иногда кстати О3 может быть медленнее чем О2

Berkus
02.07.2017
10:54:54
я бы не стал все пакеты собирать -O3 без разбору

Vlad
02.07.2017
10:55:58
вообще ничего страшного не случится
просто чуть дольше компилирует

Google

Berkus
02.07.2017
10:57:06
Compiling with -O3 is not a guaranteed way to improve performance, and in fact, in many cases, can slow down a system due to larger binaries and increased memory usage. -O3 is also known to break several packages. Using -O3 is not recommended. However, it also enables -ftree-vectorize so that loops in the code get vectorized and will use AVX YMM registers.
https://wiki.gentoo.org/wiki/GCC_optimization#-O граждане из генту давно все посчитали

Vlad
02.07.2017
10:58:25

Berkus
02.07.2017
10:58:52
потому что мы обсуждаем с какими флагами собирать систему?

Vlad
02.07.2017
10:58:59
гражданам из генту советуют не использовать UB и не будет проблем

Berkus
02.07.2017
10:59:08
wat

Vlad
02.07.2017
10:59:13

Berkus
02.07.2017
10:59:34
у них аналогичный набор оптимизаций

Vlad
02.07.2017
10:59:37
wat
поломки при о3 связаны с ub в основном

Berkus
02.07.2017
10:59:50
предлагаешь пофиксить 200к пакетов? удачи

Vlad
02.07.2017
10:59:54

Дед Пегас
02.07.2017
11:00:52
Достаточно собирать с -O0 и писать весь оптимизированный код вручную.

dmtrge
02.07.2017
11:03:52

Дед Пегас
02.07.2017
11:05:59
О Луна, они это всерьёз восприняли.

dmtrge
02.07.2017
11:06:02

Дед Пегас
02.07.2017
11:06:12

Berkus
02.07.2017
11:07:46

Google

Vlad
02.07.2017
11:08:21

Evgeniy
02.07.2017
11:46:21

Vlad
02.07.2017
11:47:13

Плюшка
02.07.2017
11:47:16

Vlad
02.07.2017
11:47:27

Alexander
02.07.2017
11:49:51

Scarf
02.07.2017
11:51:49
:)

Alexander
02.07.2017
12:33:34
https://habrahabr.ru/post/332084/

Evgeniy
02.07.2017
13:08:55

Сергей
02.07.2017
13:12:26

Evgeniy
02.07.2017
13:20:05

dmtrge
02.07.2017
13:22:07

Плюшка
02.07.2017
13:22:16

dmtrge
02.07.2017
13:26:13
зачем?
Юзфлаги, актуальность софта

Плюшка
02.07.2017
13:26:46
ну ок

Roman
02.07.2017
14:11:59
std::any из C++17 уже поддерживается основными компилями?

Ecklory
02.07.2017
14:12:47
Что есть "основные компиля"?

Roman
02.07.2017
14:13:03
GCC, MSVC, CLang

Dumitru
02.07.2017
14:14:41
Msvc ещё cpp14 не умеет толком
Я очень долго втыкал почему вижуалка мне подсвечивала constexpr

Google

Ilya
02.07.2017
14:16:39

Roman
02.07.2017
14:16:40
пытаюсь понять возможна ли подобная псевдо-конструкция в C++:
Validator<int, float, std::string> vld();
// should return false if anyTypeVar is neither int, nor float, nor std::string
vld.validate(anyTypeVar);

Dumitru
02.07.2017
14:17:33

Ilya
02.07.2017
14:18:35
А если темплейтный метод и тайп трейтом проверять аргумент?

Roman
02.07.2017
14:18:42
определить как-бэ некий список типов который "принимается"
template method статичен, не примет любого типа аргумент во время исполнения

Admin
ERROR: S client not available

Dumitru
02.07.2017
14:21:02
Есть другой вариант
Определи все функции для int, float, string
И одну которая будет принимать все (шаблон), вот она всегда будет возвращать False
Правда зачем

Roman
02.07.2017
14:21:12
хочу просто при ловле исключений иметь некий список типов который определяет какого-типа исключения должны тригерить определённую логику, но C++ походу такого не реализуешь
грубо говоря, псевдо-код:
// попробуй выполнить someFunction
// если кинет length_error или domain_error то выполняй ламбду из onMatch
// иначе onMismatch
trial(someFunction, {std::length_error, std::domain_error})
trial.onMismatch(...)
trial.onMatch(...)
trial.execute(...)
есть оператор typeid(), есть std::type_info
но в целом всё-равно непонятно возможно ли подобное вообще

Evgeniy
02.07.2017
14:34:47

Roman
02.07.2017
14:35:34
try catch?
я не настолько нуб)) просто try-catch в данном случае неприменим по причине асинхронности кода
захотелось попробовать экзотики и запилить некий сахар для асинхронного failure handling'а

Friedrich
02.07.2017
14:36:50
Разве catch не работает с co_await?

Roman
02.07.2017
14:37:09
это совсем в другую сторону..
суть в том что хотелось бы в идеале просто определить список типов, при котором асинхронная сущность должна повториться

Pepe
02.07.2017
14:44:10

Google

Alex Фэils?︙
02.07.2017
14:45:20

Маришка
02.07.2017
14:57:34
@admin

Group Butler [beta]
02.07.2017
14:57:35

Alex Фэils?︙
02.07.2017
14:58:04
Спасибо

Anatoly
02.07.2017
14:59:54

Александр
02.07.2017
15:24:26
слушайте, а почему я в упор не вижу в бусте stacktrace? что в репозитории написано, что он существует, буст тоже последний (1.64)

Alex Фэils?︙
02.07.2017
15:24:40
Так у Антона он пока в разработке

Александр
02.07.2017
15:25:17
ах вот оно что, спасибо

Roman
02.07.2017
15:47:52
типа
stream
->retry([](const QVariant& err) {
// if error was expected then retry
if(errorIsExpected(err)) return true;
// otherwise don't retry and fail
return false;
})
->failure([](const QVariant& err) {...})
но тогда как быть с std::exception'ами? (на данный момент реализовано через жп, просто QVariant(exception.what()) )
с error code'ами всё просто, кидаем число из enum'а и всё, с классами исключений всё получается через жп

Scarf
02.07.2017
16:09:07
Qt не любит исключений.

Alexander
02.07.2017
16:10:30
что значит не любит?

Roman
02.07.2017
16:12:40
Qt не любит исключений.
вот и я теперь их начинаю "не любить". если ловлю в стриме exception, беру .what() - кладу в QVariant() и передаю обработчику.. но это наверное далеко от идеала
(стрим в данном контексте это асинхронный executable бросающий эвенты имеющий свойство завершаться, останавливаться и отменяться)