
Маришка
21.06.2017
11:36:50
А смысл от чистки истории чятика?

Matway
21.06.2017
11:37:26
Итог бенчмарка std::variant vs. switch-based variant, Clang/C2 3.8, x86, синтетический пример (выше):
std::variant - 27.689 s
switch variant - 13.487 s
В два раза.

Alex Фэils?︙
21.06.2017
11:37:43

Google

Anton
21.06.2017
11:38:16

Alex Фэils?︙
21.06.2017
11:38:46
Хитрец)
*с указанием авторства. Алсо @xthon.

Danila
21.06.2017
11:38:48

Маришка
21.06.2017
11:40:33

Danila
21.06.2017
11:44:14
/rules

Anatoly
21.06.2017
11:44:59
/rules
а упоминание rules в суе относится к флуду?

Danila
21.06.2017
11:45:35
а шут его знает

Дед Пегас
21.06.2017
11:46:37
/rules


Group Butler [beta]
21.06.2017
11:46:38
/rules
Правила
0. Язык чата — русский. The chat's language is Russian.
1. Простые вопросы (к примеру, о базовом синтаксисе языка, или от новичков в C/C++) , лабы, "помогите с задачкой" и о IDE — в чат новичков: https://telegram.me/joinchat/BYlFbD3eN3JMaG34hyh96w
2. Не хамим, не переходим на личности, не вбрасываем утверждения без доказательств (для этого есть pro.cxx.holywars — https://telegram.me/joinchat/BYlFbECi8UKU0bCqc7jWlQ и @flood);
2.0. Не поддавайтесь на провокации, а лучше репортите, написав в реплае @admin.
2.1. Не делайте ложных доносов на людей, и не "пингуйте" администраторов чата зря;
2.2. Не разводите срачи/холивары в этом чате. За разведение срача администрация банит без предупреждения;
3. Не надо оффтопить в этом чате и флудить (в частности не рекомендуется писать кучу мелких сообщений);
3.0. Не стоит злоупотреблять стикерами и (или) кидать их без всякой причины;
3.1. Голосовые сообщения в этом чате запрещены;
4. Вы можете спросить тематический чат, и вам, по возможности, его подскажут (также можно ввести команду #chatlist, и бот вам напишет списочек известных чатов)
5. Все вакансии, реклама и добавление своего чатика в списочек известных чатов — по согласованию с @AlexFails;
6. Нарушители сначала получают предупреждение, а затем, в случае рецидива, бан на срок от 1 дня до бесконечности.
Все правила - /rules.


Alex Фэils?︙
21.06.2017
11:47:57
Готово
/rules
Он не-админам пишет в личку

Berkus
21.06.2017
13:22:53

Google

reagentoo
21.06.2017
13:47:13
кстати, сейчас std::variant генерит таблицу с указателями на конструкторы/деструкторы/операторы?
или через рекурсию запилено
https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/variant
вроде запилили через таблицу _S_vtable
но как же это ужасно смотреть
...
кому нраица код то вообще?
помоему месево безумное
std сочиняет сам сатана

Дед Пегас
21.06.2017
15:23:39
Да, пишут его упорки.

Владислав
21.06.2017
15:24:27
а это типо супероптимизированный код? Или они просто колдуны?

Simon
21.06.2017
15:25:00
суперколдуны-упорки

Владислав
21.06.2017
15:25:12
просто как не глянешь так сразу самооценка падает

Дед Пегас
21.06.2017
15:25:12
Они просто упорки + много лет поддержки кодовой базы.

Alexander
21.06.2017
15:25:34
ну-ка, конан мастера - можно заставить тянуть conan пакеты с определённого адреса?

Simon
21.06.2017
15:25:48
пишешь в течение 10+ лет в 3 стандарте плюсов новые фичи

Alexander
21.06.2017
15:25:52
то есть каждому пакету присвоить ссылку, откуда стоит его брать?

reagentoo
21.06.2017
15:26:08

Дед Пегас
21.06.2017
15:26:22

Google

Дед Пегас
21.06.2017
15:26:40

Constantine
21.06.2017
15:26:41

Alexander
21.06.2017
15:26:46
А вот это хз.
так, а как ты хотел? просто на левом адресе серв поднять, чтобы он у себя пакеты зранил - такое умею

reagentoo
21.06.2017
15:27:17

Constantine
21.06.2017
15:27:35

Дед Пегас
21.06.2017
15:28:07

reagentoo
21.06.2017
15:28:11

Alexander
21.06.2017
15:28:20
смысл в том, чтобы conan мог тянуть пакеты, которые уже лежат на svn

Дед Пегас
21.06.2017
15:28:58
неа, это не то
Почему? Потом в conan install -r можно указать ремоунт нужный для пакета
ремоут*

Surreal
21.06.2017
15:29:36

Constantine
21.06.2017
15:30:05
тут оффтоп вопрос, безымянный неймспейс будет значить internal linkage для функции?

Дед Пегас
21.06.2017
15:30:05

Berkus
21.06.2017
15:32:04

Alexander
21.06.2017
15:33:10
Или это не то?
смотри, что я хотел сделать: есть файл conanfile.txt. В нём записаны зависимости в таком виде:
[i_forgot_this_keyword]
my_supa_lib/bla-bla svn://bla-bla-bla-link
my_supa_lib2/bla-bla svn://bla-bla-bla2-link
После этого я пишу conan install, и он мне сам вытягивает пакеты с уже указаннах путей

Admin
ERROR: S client not available

Antony
21.06.2017
15:33:29
надо в Boost.Variant так же сделать

Google

Дед Пегас
21.06.2017
15:34:04

Alexander
21.06.2017
15:34:39

Владислав
21.06.2017
15:35:08
я нипанимать

Constantine
21.06.2017
15:35:09
можно ли написать макрос с именем неймспейса и обращением так, чтобы ничего не поломалось для безымянного? :)

Berkus
21.06.2017
15:37:29

Antony
21.06.2017
15:37:55

Berkus
21.06.2017
15:38:36

Alexander
21.06.2017
15:38:58
не моуг найти про это ничего в документации. Как я понимаю, у них изначально подразумевается, что хранение происходжит именно там, где установлен conan_server

Constantine
21.06.2017
15:42:09
О! Antony. Слушай, а какие есть продводные камни в
1. Разрешить forward declaration для nested class простейшим синтаксисом
class Some;
class Some::Nested;
2. Разрешить forward declaration с указанием предков, при этом если предок не один, то _все они_ не могут быть incomplete type.
class Base;
class Derived: public Base;

Vladislav
21.06.2017
15:42:33

Arseny
21.06.2017
15:58:23

reagentoo
21.06.2017
16:22:35
а без воидов заэкспандить не осилили

Antony
21.06.2017
16:43:26
что именно ты видишь, разжуй плз
// Из этого создастся куча функций, см ниже
template<typename _Lhs, typename _Rhs>
void __erased_swap(void* __lhs, void* __rhs) {
using std::swap;
swap(static_cast<_Lhs>(*__lhs), static_cast<_Rhs>(*__rhs));
}
void variant<_Types>::swap(variant<_Types>& other_variant) {
...
// this.index() == other_variant.index()
using func_ptr_t = void(*)(void*, void*);
// массив функций
static constexpr func_ptr_t _S_vtable[] =
{ &__erased_swap<_Types&, _Types&>... };
func_ptr_t required_ptr = _S_vtable[this->index()]; // находим нужную функцию
required_ptr(this->storage(), other_variant.storage()); // вызываем её
}

reagentoo
21.06.2017
16:44:39
для типов которые на входе в вариант

Antony
21.06.2017
16:47:32
для каждого типа, который может хранить данный variant

reagentoo
21.06.2017
16:47:56

Google

reagentoo
21.06.2017
16:49:10
в моем велосипеде тоже через кучу функций
https://github.com/reagentoo/libcxx/blob/master/include/variant.h#L192

Antony
21.06.2017
16:54:44
+1

Matway
21.06.2017
16:58:52
Мне пришлось полностью выкинуть variant нафиг. Выиграл 25% производительности.

reagentoo
21.06.2017
16:59:40