Size: a a a

2020 October 13

TM

Tamil Murugan in pro.cxx
hi
источник

D

Danya in pro.cxx
Чем обусловлено такое поведение?
GCC разрешает template argument deduction в параметре шаблона, а clang — нет
Кто прав, а кто виноват?
https://godbolt.org/z/cjGbdY
источник

AP

Antony Polukhin in pro.cxx
А почему вы хотите его игнорировать?
источник

ГH

Гласси Hudobin in pro.cxx
Мне кажется про сигналы надо писать в начале main()
источник

W

Wild_Wind in pro.cxx
Побитый Кирпич
Не, там всё законно в базовой имплементации
Ок, просто раньше там лупхолы были.
источник

W

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

ПК

Побитый Кирпич... in pro.cxx
Wild_Wind
Ок, просто раньше там лупхолы были.
Лупхолы там и щас есть, просто как оптимизация времени компиляции насколько я понимаю. Если лупхолы прикроют, то там есть fallback на законную реализацию
источник

W

Wild_Wind in pro.cxx
Побитый Кирпич
Лупхолы там и щас есть, просто как оптимизация времени компиляции насколько я понимаю. Если лупхолы прикроют, то там есть fallback на законную реализацию
Хорошо.
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
Maxim Voloshin
ок, может и есть)
Есть, но в публичном апи классов он не торчит, только в UHuitaPlatformWindows там, например
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
Maxim Voloshin
Ты работаешь на винде, инклудишь <thread>, используешь std::thread. Под капотом при сборке в проект залетает windows.h со всеми своими потрохами -> время компиляции увеличивается, бинарник тоже = плохо. Вот о чем я. В геймдеве это особо болезненно.
В интерфейсе оно может и не торчать, и не будет влиять на время сборки
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
magras
Еще иногда можно избежать дублирования реализации константных / не константных гетеров. Но да, это опасно, так как реальная модификация объекта в константном методе переходит из ошибки компиляции в UB.
Я обычно шаблоноту делаю для конст/не-конст-итераторов
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
Maxim Voloshin
Есть еще Christer Ericson - Real Time Collision Detection
Есть эл версия? Сложу в библиотеку к нам
источник

SK

Stas Koynov in pro.cxx
Alex Ф-ф-фэils!🌠︙
Есть эл версия? Сложу в библиотеку к нам
источник

S

Sohibjon in pro.cxx
Здравствуйте
Можете помочь решить задачку по c++?
источник

VS

Vladimir SHCHerba in pro.cxx
источник

S

Sohibjon in pro.cxx
Здесь это разрешается?
источник

O

Ofee in pro.cxx
Дисклеймер: я просто изучаю разные возможности для создания более продвинутых точек кастомизации

Возможно ли как-то сэмулировать поиск по ADL, если нам известен тип (некоторый тег), но при этом искомая функция не принимает аргумент соответствующего типа?

Условно:
namespace ns {
   struct tag;
   void foo();
}

template<typename T>
void call_by_tag() {
   // call foo() from namespace of T
}

call_by_tag<ns::tag>(); // calls foo()

Возможна ли реализация call_by_tag языковыми средствами?
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
magras
А вообще что осталось от препроцессора в плюсах?

Инклюды заменили модулями.

__LINE__ и компанию заменили std::source_location.

Рефлексия забирает на себя проблемы сериализации и простой кодогенерации.

Какие еще не решенные задачи остались? Я могу вспомнить лишь несколько:
1) Условная компиляция.
2) Генерация уникальных имен.
3) Передача в код внешних переменных через дефайны.
4) Сокращение бойлерплейта.

Препроцессор не идеально, но все же неплохо решает все эти проблемы.

Если брать растовские процедурные макросы, они в основном крутятся вокруг антоаций. Я бы не отказался от них в плюсах, но это больше расширение чем замена препроцессора, на мой взгляд.

Просто при использовании препроцессора по делу, я не могу вспомнить каких то серьезных проблем. Поэтому у меня есть ощущение что препроцессор хотят выкинуть просто потому что его все ругают.
2) можно через consteval, наверное провертеть
источник

DS

Dmitry Sokolov in pro.cxx
Ofee
Дисклеймер: я просто изучаю разные возможности для создания более продвинутых точек кастомизации

Возможно ли как-то сэмулировать поиск по ADL, если нам известен тип (некоторый тег), но при этом искомая функция не принимает аргумент соответствующего типа?

Условно:
namespace ns {
   struct tag;
   void foo();
}

template<typename T>
void call_by_tag() {
   // call foo() from namespace of T
}

call_by_tag<ns::tag>(); // calls foo()

Возможна ли реализация call_by_tag языковыми средствами?
А чего в сам ns не внести adl friendly штуки, типа ns::traits? Или "функций оч. много, лень?"
источник

P

PRoSToC0der in pro.cxx
Ofee
Дисклеймер: я просто изучаю разные возможности для создания более продвинутых точек кастомизации

Возможно ли как-то сэмулировать поиск по ADL, если нам известен тип (некоторый тег), но при этом искомая функция не принимает аргумент соответствующего типа?

Условно:
namespace ns {
   struct tag;
   void foo();
}

template<typename T>
void call_by_tag() {
   // call foo() from namespace of T
}

call_by_tag<ns::tag>(); // calls foo()

Возможна ли реализация call_by_tag языковыми средствами?
tag_invoke не подходит?
источник