Size: a a a

2021 March 22

PZ

Pavel Zhigulin in pro.cxx
Constantine Drozdov
кратко: сигнатура friend функции оказывается снаружи шаблона и может не зависеть от шаблонного параметра
последствия: представь, что в уютненьком чистеньком ФП-языке завелась изменяемая переменная
Понятнее не стало :) Пойду смотреть докладик
источник

UK

Uyutnov Kirill in pro.cxx
Constantine Drozdov
кратко: сигнатура friend функции оказывается снаружи шаблона и может не зависеть от шаблонного параметра
последствия: представь, что в уютненьком чистеньком ФП-языке завелась изменяемая переменная
После таких финтов ещё больше утверждаюсь во мнении, что ИБ гораздо перспективнее чего либо на рынке )
источник

IZ

Ilia Zviagin in pro.cxx
Pavel Zhigulin
Понятнее не стало :) Пойду смотреть докладик
Ещё у нас Квятковского есть докладик на эту тему...
источник

CD

Constantine Drozdov in pro.cxx
Pavel Zhigulin
Понятнее не стало :) Пойду смотреть докладик
А чего непонятного?
            template <unsigned N>
           struct Writer
           {
               friend constexpr bool adl_flag(Flag<N>) //вот эта штука оказывается снаружи шаблона при инстанцировании
               {
                   return true;
               }

               static constexpr unsigned value = N;
           };
           //так что если инстанцировать Writer<42>, то как будто вот сюда написали adl_flag(Flag<42>)
источник

CD

Constantine Drozdov in pro.cxx
дальше узнать сигнатуру adl_flag - исключительно дело техники
источник

AP

Antony Polukhin in pro.cxx
Pavel Zhigulin
Понятнее не стало :) Пойду смотреть докладик
Вот тут есть минимальный пример и ссылка на пост с объяснениями https://github.com/boostorg/pfr/blob/develop/test/loophole_detection.cpp
источник

SM

Sergey Melkumyan in pro.cxx
Здравствуйте. Кто то может помочь мне? Я новичок.
источник

IZ

Ilia Zviagin in pro.cxx
Sergey Melkumyan
Здравствуйте. Кто то может помочь мне? Я новичок.
источник

SM

Sergey Melkumyan in pro.cxx
Спасибо 🙏🏻
источник

CD

Constantine Drozdov in pro.cxx
Pavel Zhigulin
Понятнее не стало :) Пойду смотреть докладик
Если я правильно понял конкретный пример, автор делает счётчик, работающий по следующему принципу
Writer<N> дописывает adl_flag(Flag<N>) в множество функций
reader при вызове ищет первое N такое, что adl_flag(Flag<N>) не записано, после чего вызывает Writer<N> и возвращает N
источник

PZ

Pavel Zhigulin in pro.cxx
Спасибо)))

P.S.
Я дошёл до места в докладе, где начинают приводить примеры из magic_get и я такой: "В принципе, я не удивлён, что это запилил Антон" :)
источник

PZ

Pavel Zhigulin in pro.cxx
О божечки, кажется я всё понял.
источник

PZ

Pavel Zhigulin in pro.cxx
Спасибо.
источник

CD

Constantine Drozdov in pro.cxx
Не знаю, что думает комитет, имхо это просто баг
источник

PZ

Pavel Zhigulin in pro.cxx
Constantine Drozdov
А чего непонятного?
            template <unsigned N>
           struct Writer
           {
               friend constexpr bool adl_flag(Flag<N>) //вот эта штука оказывается снаружи шаблона при инстанцировании
               {
                   return true;
               }

               static constexpr unsigned value = N;
           };
           //так что если инстанцировать Writer<42>, то как будто вот сюда написали adl_flag(Flag<42>)
Скажем, unique_value::value<> далее в коде этой либы используется как генератор уникального тэга и пока я еще не до конца понял как это работает, но вообще идея мне теперь понятна, ща немного еще покурю над кодом и всё пойму)
источник

CD

Constantine Drozdov in pro.cxx
Pavel Zhigulin
Скажем, unique_value::value<> далее в коде этой либы используется как генератор уникального тэга и пока я еще не до конца понял как это работает, но вообще идея мне теперь понятна, ща немного еще покурю над кодом и всё пойму)
источник

PZ

Pavel Zhigulin in pro.cxx
Constantine Drozdov
Не знаю, что думает комитет, имхо это просто баг
Может и баг, но мне нравится, я бы оставил)
источник

CD

Constantine Drozdov in pro.cxx
Pavel Zhigulin
Может и баг, но мне нравится, я бы оставил)
проблема в существовании переменных времени компиляции уже в том, что они существуют
источник

PZ

Pavel Zhigulin in pro.cxx
Constantine Drozdov
проблема в существовании переменных времени компиляции уже в том, что они существуют
Нууууу)) Возможно :) А с другой стороны, теперь можно написать compile-time хэш таблицу))
источник

D

Danya in pro.cxx
Pavel Zhigulin
Нууууу)) Возможно :) А с другой стороны, теперь можно написать compile-time хэш таблицу))
ненужно
источник