@ProCxx

Страница 2217 из 2477
Constantine
20.07.2018
10:49:01
+1, го го го го го

Дед Пегас
20.07.2018
11:22:11
Вычищено во имя Омниссии.

Kitsu
20.07.2018
12:29:55
Есть какие-то требования к типу value_type для initializer_list?

Anatoly
20.07.2018
12:33:21
Есть какие-то требования к типу value_type для initializer_list?
а ты можешь предоставить доказательства того, что ты был на cppreference и там ничего об этом нет?

Google
Kitsu
20.07.2018
12:35:49
а ты можешь предоставить доказательства того, что ты был на cppreference и там ничего об этом нет?
Ну я видел each element is copy-initialized, тем не менее мой clang дает создать пустой список для элементов с удаленными конструкторами копирования, например

Ну я видел each element is copy-initialized, тем не менее мой clang дает создать пустой список для элементов с удаленными конструкторами копирования, например
Просто я как-то использовал std::array<T, 0>, потом оказалось, что на каких-то компиляторах оно не работает

Kitsu
20.07.2018
12:38:55
Дык массив нулевого размера не допустим
только обращение к элементам, сам по себе - вполне

Kitsu
20.07.2018
12:40:28
нет
глава 26.3.7.5, zero-sized arrays

Ilia
20.07.2018
12:46:02
Дык массив нулевого размера не допустим
Можна! There is a special case for a zero-length array (N == 0). In that case, array.begin() == array.end(), which is some unique value. The effect of calling front() or back() on a zero-sized array is undefined. An array can also be used as a tuple of N elements of the same type.

Antony
20.07.2018
12:48:35
Да потому что экономить 8 байт структуры не имеет смысла почти никогда
Где-то мне на глаза попадаласть статья, о том как в MSVC уменьшили размеры всех контейнеров на несколько байт и о том, как это круто

Как насчёт https://github.com/lnishan/vector ?
Какая-то жуткая фигня https://github.com/lnishan/vector/blob/master/vector.hpp#L123-L125 Супер жуткая: https://github.com/lnishan/vector/blob/master/vector.hpp#L297-L299

ed
20.07.2018
12:57:35
Где-то мне на глаза попадаласть статья, о том как в MSVC уменьшили размеры всех контейнеров на несколько байт и о том, как это круто
Блин вы это серьёзно сейчас? Если у вас 10кк маленьких векторов это уже серьёзный оверхед в 70мб 100кк вы потеряете на этом сраный гигабайт просто в некуда.

Assasin
20.07.2018
12:59:29
а где нужны 100кк мелких векторов?

ed
20.07.2018
12:59:34
Сейчас единственное оправдание плюсов это высоконагруженные проекты, где такие цифры в порядке вещей. А вы говорите, оверхед пл контейнерам не важен.

Google
ed
20.07.2018
12:59:57
Spoonson
20.07.2018
13:00:06
и сколько же памяти в целом будут съедать 100кк мелких векторов в сумме?

ed
20.07.2018
13:00:26
А игры? :)
А игры это и есть "высоконагруженные проекты"

Kitsu
20.07.2018
13:00:30
Ну я видел each element is copy-initialized, тем не менее мой clang дает создать пустой список для элементов с удаленными конструкторами копирования, например
В общем на cppreference не оч написано. К элементам initializer_list - вообще нет требований все требования идут только для brace-initialization, как единственный(?) способ инициализации непустого списка

Assasin
20.07.2018
13:01:57
sql движок например?
O_o, удивлен, а что в sql требует хранения такого количества векторов? индексы? метаинфа?

ed
20.07.2018
13:02:55
Ты знаешь что любой не пустой вектор кушает минимум 64 байта в x64?
Под векторами в данном случае я имел в виду +- любой контейнер.

Constantine
20.07.2018
13:03:22
Под векторами в данном случае я имел в виду +- любой контейнер.
Так любой контейнер будет память аллокать

Ignat
20.07.2018
13:04:12
Ты знаешь что любой не пустой вектор кушает минимум 64 байта в x64?
ну вообще говоря бывают оптимизации для маленьких векторов

Constantine
20.07.2018
13:05:04
ну вообще говоря бывают оптимизации для маленьких векторов
они запрещены для std::vector и любого контейнера

Spoonson
20.07.2018
13:05:31
Constantine
20.07.2018
13:06:08
http://eel.is/c++draft/container.requirements.general#9 The expression a.swap(b), for containers a and b of a standard container type other than array, shall exchange the values of a and b without invoking any move, copy, or swap operations on the individual container elements

ed
20.07.2018
13:06:11
Ты знаешь что любой не пустой вектор кушает минимум 64 байта в x64?
Да и пусть даже так, 6гб это уже даже устаревшие стандарты оюъёмов памяти. Но факт остаётся фактом, мы проебали гигабайт в абсолютное ничего.

Antony
20.07.2018
13:07:12
Потому что align для new будет 64
На множестве платформ он 16, а не 64

Google
Constantine
20.07.2018
13:07:54
На множестве платформ он 16, а не 64
Да не важно, все равно + запись в хипе

ed
20.07.2018
13:08:08
Зачем писать на плюсах если не упарываться оптимизацией?

Constantine
20.07.2018
13:08:46
Вы признаны троллем. Я поддержу вашу кандидатуру на выборах в комитет

ed
20.07.2018
13:09:50
Я же не говорю лезть в асм, или название переменных сокращать (лол). Но банальный оверхед у структуры убрать то можно? Или это уже тоже мувитон?

Constantine
20.07.2018
13:10:40
Названия классов вот практично сокращать

Constantine
20.07.2018
13:10:58
Модулей не будет, а время компиляции от этого сокращается

Alexander
20.07.2018
13:11:16
ed
20.07.2018
13:11:27
А о каком именно оверхеде идёт речь, я немного пропустил обсуждение
Ну мол лишние 8 байт в векторе никому не помешают.

Kirill
20.07.2018
13:11:42
а зачем НЕ писать на плюсах?
зачем НЕ упарываться оптимизацией?

Alexander
20.07.2018
13:11:57
зачем НЕ упарываться оптимизацией?
потому что i9 хватит всем

Constantine
20.07.2018
13:12:17
потому что 90% кода можно на питоне писать

ed
20.07.2018
13:12:26
зачем НЕ упарываться оптимизацией?
Зпчем НЕ оптимизацией упарываться? - вот правильный вопрос.

Alexander
20.07.2018
13:12:58
Constantine
20.07.2018
13:13:08
ни в одной системе никогда не будет создано 100млн std::vector-ов

ed
20.07.2018
13:13:09
потому что i9 хватит всем
У меня так брат миллиардером стал.

Constantine
20.07.2018
13:13:33
или всё же JS? ?
да хоть на чем, там производительность не нужна

вылизывается на практике 1% кода максимум

ed
20.07.2018
13:15:02
вылизывается на практике 1% кода максимум
А через пару тройку лет это становится помойкой кода, а не проектом.

Antony
20.07.2018
13:15:20
Google
Constantine
20.07.2018
13:15:41
А как добились выиграша в 8 байт?
Вроде это невозможно :)

ed
20.07.2018
13:15:58
А как добились выиграша в 8 байт?
Хз, это там выше почитайте, меня просто зацепило что "это не важно"

Constantine
20.07.2018
13:16:37
У вектора оверхед в 1.5 раза врожденный, о чем мы вообще спорим?)

А как добились выиграша в 8 байт?
Не думаете там в boost.dll автоматик в demangle написать вместо boost.spirit.x3? :)

Antony
20.07.2018
13:20:05
Не думаете там в boost.dll автоматик в demangle написать вместо boost.spirit.x3? :)
Яб с радостью. Желающих сделать это за меня - нет

Constantine
20.07.2018
13:20:43
Яб с радостью. Желающих сделать это за меня - нет
Ну... я на такое сразу пас, сам недавно разбирался со спиритом, чтобы не писать автоматики)

Antony
20.07.2018
13:21:01
Вот и я не хочу :)

Побитый
20.07.2018
13:41:07
Ilia
20.07.2018
15:04:10
Не будет же, уже объявляли...

Не, конечно, чудеса бывают...

Aidar
20.07.2018
15:06:12
Не будет же, уже объявляли...
а заседание по модулям прошло чтоль7

Ilia
20.07.2018
15:06:50
Ну вон Антон же выше. Он же писал, статья на Хабре.

Недели 3 наверно ещё назад

Aidar
20.07.2018
15:07:10
я пропустил

помянем модули

Alexander
20.07.2018
15:09:14
Боты в заблуждение вводят

Aidar
20.07.2018
15:10:05
ну че тогда похоронили?

Alexander
20.07.2018
15:10:32
потому что шанс их попадания в С++20 мал, ИМХО

Stanislav
20.07.2018
15:10:47
ну че тогда похоронили?
никто не хоронил

Google
Ilia
20.07.2018
15:11:06
Боты в заблуждение вводят
Ну, может быть я перепутал.

помянем модули
Не, поминать их рано, их же не похоронили, не отказались от них.

Sheldon
20.07.2018
15:48:59
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1108r0.html

а, уже было, окей

Alexey
20.07.2018
16:02:01
Что-то я туплю. struct Foo { Foo(int){}}; struct Bar : Foo {}; Возможно ли создать переменную типа Bar?

Pavel
20.07.2018
16:04:17
А стоп, не паблик наследование, тогда я пас

Alexey
20.07.2018
16:04:55
а какие с этим проблемы?
такие https://godbolt.org/g/rVnFsr

yuri
20.07.2018
16:05:02
а, уже было, окей
"Сотрудники Яндекса будут представлять Россию в комитете по стандартизации C++ и продвигать Яндекс.Браузер в стандартную библиотеку".

Alexey
20.07.2018
16:05:07

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