Size: a a a

2020 October 13

AP

Antony Polukhin in pro.cxx
Wild_Wind
А это вообще законно?
Я думал, это очередной баг стандарта...
Мне тут подкинули ещё одну идею, как можно рефлексию делать... вот там уже совсем незаконно %)
источник

AP

Antony Polukhin in pro.cxx
Anatoly Shirokov
Молодец, Антоша!
Спасибо! Осталось внедрить в Boost.Spirit и Boost.Serialize

И получится круто и изкоробочно
источник

CD

Constantine Drozdov in pro.cxx
Antony Polukhin
Кстати, magic_get прошёл Boost review!

Я даже почти поправил все замечания https://github.com/apolukhin/magic_get/pull/51 , так что скорее всего будет в ближайшей версии Boost

P.S.: любая помошь с тестированием или подсказками по документации приветствуется http://apolukhin.github.io/magic_get/index.html
А PR про tuple-интерфейс агрегатов, который делает magic_get ненужным? :)
источник

ПК

Побитый Кирпич... in pro.cxx
Antony Polukhin
Мне тут подкинули ещё одну идею, как можно рефлексию делать... вот там уже совсем незаконно %)
ждём статью на хабре
источник

ПК

Побитый Кирпич... in pro.cxx
или хотя бы доклад :)))
источник

P

PRoSToC0der in pro.cxx
интересно можно ли это как-то эксплуатировать для рефлексии:
https://godbolt.org/z/GMK58j
источник

ПК

Побитый Кирпич... in pro.cxx
Wild_Wind
А это вообще законно?
Я думал, это очередной баг стандарта...
Не, там всё законно в базовой имплементации
источник

AP

Antony Polukhin in pro.cxx
Constantine Drozdov
А PR про tuple-интерфейс агрегатов, который делает magic_get ненужным? :)
Я конечно надеюсь, что оно попадёт в C++23, но опыт подсказывает что окажется в C++26 или C++29.

Ну и Boost в любом случае будет поддерживать старые стандарты длительное время

Ну и для Core proposal нужен опыт использования и реализация в популярных компиляторах
источник

CD

Constantine Drozdov in pro.cxx
Antony Polukhin
Я конечно надеюсь, что оно попадёт в C++23, но опыт подсказывает что окажется в C++26 или C++29.

Ну и Boost в любом случае будет поддерживать старые стандарты длительное время

Ну и для Core proposal нужен опыт использования и реализация в популярных компиляторах
А magic_get не может считаться такой реализацией, поскольку он позволяет реализовать эту функциональность без компилятора?
источник

AP

Antony Polukhin in pro.cxx
Побитый Кирпич
Не, там всё законно в базовой имплементации
C++17 движок совсем законный
Loophole - не очень
Базовый движок - тоже законен, но MSVC в него не умеет
источник

ПК

Побитый Кирпич... in pro.cxx
базовый это с++14? Потому что я в С++17 в msvc юзал. И работало идеально (по сравнению с boost.fusion, который не смог в conxtexpr в msvc)
источник

AP

Antony Polukhin in pro.cxx
Constantine Drozdov
А magic_get не может считаться такой реализацией, поскольку он позволяет реализовать эту функциональность без компилятора?
Подобная штука уже была с is_constant_evaluated. Его сделали в виде библиотечного решения, а приняли как ядерную часть
источник

AP

Antony Polukhin in pro.cxx
Побитый Кирпич
базовый это с++14? Потому что я в С++17 в msvc юзал. И работало идеально (по сравнению с boost.fusion, который не смог в conxtexpr в msvc)
Ага, базовый c++14 движок
источник

CD

Constantine Drozdov in pro.cxx
Antony Polukhin
Подобная штука уже была с is_constant_evaluated. Его сделали в виде библиотечного решения, а приняли как ядерную часть
А p1144 ([[trivially_relocatable]]) не знаете, в каком состоянии? Я все никак не соберусь с аргументацией для автора, что этот атрибут надо в user defined move ctor приписать
источник

CD

Constantine Drozdov in pro.cxx
У меня там основная примерно что правила тривиальности подозрительно напоминают правила генерации move ctor
источник

P

PRoSToC0der in pro.cxx
Constantine Drozdov
А p1144 ([[trivially_relocatable]]) не знаете, в каком состоянии? Я все никак не соберусь с аргументацией для автора, что этот атрибут надо в user defined move ctor приписать
источник

CD

Constantine Drozdov in pro.cxx
спасибо
источник

AP

Antony Polukhin in pro.cxx
Constantine Drozdov
А p1144 ([[trivially_relocatable]]) не знаете, в каком состоянии? Я все никак не соберусь с аргументацией для автора, что этот атрибут надо в user defined move ctor приписать
Меня больше за душу берёт предложение от Антона Жилина http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2025r1.html
источник

CD

Constantine Drozdov in pro.cxx
Antony Polukhin
Меня больше за душу берёт предложение от Антона Жилина http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2025r1.html
Там базовая идея очень крутая, да. Мне кажется, что в стандарте фундаментально не хватает правил семантики операций - поправьте меня, стандарт не накладывает вообще никаких ограничений для функций, рассматриваемых компилятором как CopyCtor и MoveCtor
источник

AP

Antony Polukhin in pro.cxx
Constantine Drozdov
Там базовая идея очень крутая, да. Мне кажется, что в стандарте фундаментально не хватает правил семантики операций - поправьте меня, стандарт не накладывает вообще никаких ограничений для функций, рассматриваемых компилятором как CopyCtor и MoveCtor
Есть чуть чуть на алиасинг, и то мало кто пользуется
источник