Size: a a a

2020 August 15

A

Alex in pro.cxx
Это интересное замечание. Ну синтаксически, конечно, пусть будет корректным, с точкой с запятой в конце (если нет фигурных скобок).
источник

ПК

Побитый Кирпич... in pro.cxx
Alex
он выбрасывается при компиляции, зачем его валидировать-то?
Constexpr if не предполагался как аналог макросов
источник

A

Alex in pro.cxx
это и нельзя реализовать на макросах
источник

ПК

Побитый Кирпич... in pro.cxx
Alex
это и нельзя реализовать на макросах
Я про ifdef
источник

A

Alex in pro.cxx
я понимаю, ничего аналогичного между ними нет
источник

A

Alex in pro.cxx
это вообще никак нормально реализовать нельзя, из-за этого бага стандарта мне придётся серьёзно уродовать и раздувать код
источник

ПК

Побитый Кирпич... in pro.cxx
Но ты всегда можешь запилить dependent контекст, вроде проблем нет
источник

A

Alex in pro.cxx
который был очень простым
источник

A

Alex in pro.cxx
да как сказать, каждый кусочек кода, каждую такую ветку if constexpr выносить в отдельную шаблонную функцию?
источник

AP

Antony Polukhin in pro.cxx
Побитый Кирпич
А разве stacktrace сам не аллоцирует?
Там можно подсунуть свой аллокатор для сбора стеков
источник

AP

Antony Polukhin in pro.cxx
magras
Имена можно потом зарезолвить.
Да, boost::stacktrace специально резолвит отдельно и момент резолвинга можно откладывать. Этот же дизайн поедет и в std::stacktrace
источник

ПК

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

ПК

Побитый Кирпич... in pro.cxx
То что ты и хочешь
источник

A

Alex in pro.cxx
Побитый Кирпич
То что ты и хочешь
препроцессор не может вычислять условия в compile time по правилам С++, так что ничего общего нет
источник

AK

Alexey Kuznetsov in pro.cxx
Antony Polukhin
На винде кажется есть хук на аллокатор

А вообще да, можно сделать свою функцию аллокации и в ней прям boost::stacktrace заиспользовать

В gamedev кто-то такое делал
На винде вроде только с дебажным рантаймом он работает и с _DEBUG. И оверхед получается значительный из-за этого.
источник

AS

Artur Solovev in pro.cxx
Не могу пока посмотреть код, но должен сказать, что в std далеко не все sfinae-friendly (например, std::is_enum<T> вроде бы нет), и в таких случаях if constexpr ведёт себя странно (не может перейти на следующую ветку условия, например).
источник

AS

Artur Solovev in pro.cxx
Народ, у меня опять лыжи не едут. Помогите понять, как возможна такая ошибка: https://godbolt.org/z/zPob6P

Я считал, что если условие if constexpr false, то соответствующая ветка просто не компилится, но здесь явно не так!
источник

AS

Artur Solovev in pro.cxx
Упс, опять процитировал вместо ответа
источник

N

Neargye in pro.cxx
Artur Solovev
Не могу пока посмотреть код, но должен сказать, что в std далеко не все sfinae-friendly (например, std::is_enum<T> вроде бы нет), и в таких случаях if constexpr ведёт себя странно (не может перейти на следующую ветку условия, например).
источник

F

Fox in pro.cxx
Alexander N
Во кстати
Foo& Foo::bad() {
delete this;

return *this;
}
источник