Size: a a a

2020 March 15

AK

Anton Kviatkovskii in pro.cxx
Ofee
А в каком состоянии сейчас обсуждения по лупхолам? На них уже можно закладываться? Я заметил, что на их основе, потенциально можно собирать во время компиляции статистику об инстанцированиях и, возможно, даже автоматически провести какие-то оптимизации типов данных и работы с ними, которые раньше требовали больше ручного контроля или бойлерплейта.

Так что, стоит лупхолы рассматривать как потенциально полезный механизм или стоит подождать какой-то определённости?
Их хотят выпилить и пока что не знают как именно
источник

AK

Anton Kviatkovskii in pro.cxx
Т.е. раньше как минимум до 23 стандарта они всё ещё будут работать
источник

AK

Anton Kviatkovskii in pro.cxx
Но прям что-то серьёзное городить на них не стоит
источник

AK

Anton Kviatkovskii in pro.cxx
В целом если рефлексию пропихнут - лупхолы станут не нужны
источник

AK

Anton Kviatkovskii in pro.cxx
Ofee
А в каком состоянии сейчас обсуждения по лупхолам? На них уже можно закладываться? Я заметил, что на их основе, потенциально можно собирать во время компиляции статистику об инстанцированиях и, возможно, даже автоматически провести какие-то оптимизации типов данных и работы с ними, которые раньше требовали больше ручного контроля или бойлерплейта.

Так что, стоит лупхолы рассматривать как потенциально полезный механизм или стоит подождать какой-то определённости?
The current state is that the C++ core working group has agreed that they intend to make the technique ill-formed, but the mechanism for doing so has not yet been agreed upon.

Recently I suggested this as a solution to a collection of issues including 2118, and it was received well:

"""
For a function that is inline or has a deduced return type, the name lookup performed for each reference to the function that requires a definition to exist shall find a declaration of the function that is introduced in the same scope as the definition. For this purpose:
 -- a function declaration with a qualfiied name is considered to be introduced in the scope of the declaration named by its nested-name-specifier,
 -- a non-defining friend function declaration with an unqualified name is considered to be introduced in the scope in which the function is introduced or redeclared,
 -- a function declaration at block scope is considered to be introduced in the innermost enclosing namespace scope, and
 -- any other function declaration is considered to be introduced in the scope in which it appears. [Note: Friend function definitions are introduced in the enclosing class scope.]
"""

The specific case of this for CWG2118 would be: for a function F defined in a friend declaration in some class C, the class C shall be an associated class for all potentially-evaluated calls to F.

It's not yet clear whether this is too restrictive (there are cases where this forces a friend function to be defined outside of a class where it is currently defined inside the class, so it would be a breaking change for code that might be considered reasonable), and we've certainly not made any decision. But every time the core working group has considered the issue, they have concluded that they want to make such code ill-formed somehow.
источник

ПК

Побитый Кирпич in pro.cxx
Anton Kviatkovskii
В целом если рефлексию пропихнут - лупхолы станут не нужны
Всегда можно юзкейс придумать
источник

AK

Anton Kviatkovskii in pro.cxx
Побитый Кирпич
Всегда можно юзкейс придумать
Ну основной полезный для прода сейчас - сериализация структур
источник

AK

Anton Kviatkovskii in pro.cxx
С рефлексией это уйдет
источник

O

Ofee in pro.cxx
Anton Kviatkovskii
В целом если рефлексию пропихнут - лупхолы станут не нужны
Было бы отлично, но я пока слабо представляю, насколько широкий функционал она даст, а вот текущие лупхолы с decltype([](){}) уже дали несколько сомнительных идей, как этим можно воспользоваться.
Спасибо за ответы, буду понемногу наблюдать и экспериментировать
источник
2020 March 16

ПК

Побитый Кирпич in pro.cxx
Ofee
Было бы отлично, но я пока слабо представляю, насколько широкий функционал она даст, а вот текущие лупхолы с decltype([](){}) уже дали несколько сомнительных идей, как этим можно воспользоваться.
Спасибо за ответы, буду понемногу наблюдать и экспериментировать
Инфы об истанцировании скорее всего не будет. Сейчас самый лучший вариант это свой анализатор на кланге, думаю
источник

O

Ofee in pro.cxx
Побитый Кирпич
Инфы об истанцировании скорее всего не будет. Сейчас самый лучший вариант это свой анализатор на кланге, думаю
Так в том и дело, что для своих типов мы сможем выяснить довольно большой объем информации о том, что с ними происходит в процессе инстанцирований и, вероятно, даже построить какие-то сложные структуры данных. Есть мысль попробовать вытащить историю инстанцирований какого-либо типа на C++17, если вдруг затея окажется не провальной — отпишусь, но заниматься этим буду уже чуть позже
источник

ИI

И Ivan in pro.cxx
Alex
Искал, но не нашёл книг про физическую организацию дискового хранилища. Порекомендуете?
Еще немного есть в
Высоконагруженные приложения. Программирование, масштабирование, поддержка
источник

В

Ваня in pro.cxx
Привет, есть такое задание: входными данными программы должно быть монохромное изображение, после чего нужно его разложить на пиксели, (пусть изображение будет иметь только два цвета #ffffff и # 000000) цвета соответственно записать в массив, и закодировать методом Хаффмана. возможно кто-то знает подходящие библиотеки, или видел готовые решения.  Спасибо
источник

AK

Anton Khokhlov in pro.cxx
Ваня
Привет, есть такое задание: входными данными программы должно быть монохромное изображение, после чего нужно его разложить на пиксели, (пусть изображение будет иметь только два цвета #ffffff и # 000000) цвета соответственно записать в массив, и закодировать методом Хаффмана. возможно кто-то знает подходящие библиотеки, или видел готовые решения.  Спасибо
OpenCV?
источник

AK

Anton Khokhlov in pro.cxx
Там много всего для работы с изображениями есть
источник

В

Ваня in pro.cxx
Спасибо
источник

AB

Artöm Bakri Al-Sarmini in pro.cxx
Это ведь бага? https://godbolt.org/z/obnVzJ
источник

t

ttldtor in pro.cxx
throw в деструкторе?
источник

t

ttldtor in pro.cxx
ну-ну
источник

AB

Artöm Bakri Al-Sarmini in pro.cxx
is_nothrow_destructible должен корректно работать и в таких классах
источник